在 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 关键字将通知表单首先检查函数返回的值。