javascript - 在 Html.BeginForm 的 onsubmit 参数中使用 return 的目的是什么?
问题描述
在 ASP.NET MVC 剃须刀视图中,我在单击按钮时提交了一个表单。如果我在 onsubmit 参数上指示“返回”,它的行为与如果我不指示“返回”不同。
因此,如果我将 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或不使用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
}
^ 这将执行您的函数,如果您的函数返回一个false
布尔值,它将阻止表单提交。
要查看它们的确切不同之处,请尝试onsubmit="doAction()"
使用返回的函数false
;
onsubmit = "doAction();"
doAction(){
alert("Hello World!");
return false; // the form will still submit
}
表单仍然会提交,因为尽管函数返回,但您没有指明return
关键字false
。关键字将return
指示表单首先检查函数返回的值。
推荐阅读
- qt - 在qt程序中禁用全屏
- python - 递归检查一个字母是否在给定的字符串中
- r - 使用 dbplyr 创建每个组的潜在客户值
- macos - 在 Mac os 上编译 .adb 后 Gnatmake 编译错误
- android - 如何在不同的 Android 版本上安装包
- python - 字段上的值相关字符
- adfs - 使用 ADFS 进行条件身份验证
- c# - ASP.NET Core 2.2 Web API 没有命中任何配置的路由,这是为什么呢?
- android - 带有构建工具 28 的 Android 4.1 在奇怪的地方导致 NoClassDefFoundError
- visual-studio-code - Titanium vs-code 扩展日志级别跟踪在 Mac 上不起作用。如何查看跟踪日志?