在 Html.BeginForm 的 onsubmit 参数中使用 return 的目的是什么?
What is the purpose of using return in onsubmit parameter in Html.BeginForm?
在 ASP.NET MVC razor 视图中,我在单击按钮时提交表单。如果我在 onsubmit 参数上指明 'return' 它的行为不同于如果我不指明 'return'.
因此,如果我按如下方式对 BeginForm 进行参数化:
Html.BeginForm("", "", FormMethod.Post, new { id = "myForm", onsubmit = "return doAction();", @class = "well" })
它的行为与下面的不同:
Html.BeginForm("", "", FormMethod.Post, new { id = "myForm", onsubmit = "doAction();", @class = "well" })
所以用return和不用的目的是什么?
onsubmit = "doAction();"
doAction(){
alert("Hello World!");
}
^ 这只会执行您的功能,并且由于 doAction()
不会阻止事件执行默认过程,表单将提交。
onsubmit = "return doAction();"
doAction(){
alert("Hello World!");
return false; // form will not submit
// return true; // form will submit
}
^ 这将执行您的函数,如果您的函数 returns 是一个 false
布尔值,它将阻止表单提交。
要查看它们的确切区别,请尝试 onsubmit="doAction()"
和 returns false
;
的函数
onsubmit = "doAction();"
doAction(){
alert("Hello World!");
return false; // the form will still submit
}
表单仍会提交,因为尽管函数返回 false
,但您没有指定 return
关键字。 return
关键字将通知表单首先检查函数返回的值。
在 ASP.NET MVC razor 视图中,我在单击按钮时提交表单。如果我在 onsubmit 参数上指明 'return' 它的行为不同于如果我不指明 'return'.
因此,如果我按如下方式对 BeginForm 进行参数化:
Html.BeginForm("", "", FormMethod.Post, new { id = "myForm", onsubmit = "return doAction();", @class = "well" })
它的行为与下面的不同:
Html.BeginForm("", "", FormMethod.Post, new { id = "myForm", onsubmit = "doAction();", @class = "well" })
所以用return和不用的目的是什么?
onsubmit = "doAction();"
doAction(){
alert("Hello World!");
}
^ 这只会执行您的功能,并且由于 doAction()
不会阻止事件执行默认过程,表单将提交。
onsubmit = "return doAction();"
doAction(){
alert("Hello World!");
return false; // form will not submit
// return true; // form will submit
}
^ 这将执行您的函数,如果您的函数 returns 是一个 false
布尔值,它将阻止表单提交。
要查看它们的确切区别,请尝试 onsubmit="doAction()"
和 returns false
;
onsubmit = "doAction();"
doAction(){
alert("Hello World!");
return false; // the form will still submit
}
表单仍会提交,因为尽管函数返回 false
,但您没有指定 return
关键字。 return
关键字将通知表单首先检查函数返回的值。