我有以下表格:
@Html.BeginForm("ActionMethod","Controller",FormMethod.Post)
提交时我想运行Javascript函数,所以我添加了以下内容:
@Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "myJsFunction()" })
但是,它不起作用......我做错了什么?谢谢!
答案 0 :(得分:9)
你需要这个:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "return myJsFunction()" }))
{
//form
}
请注意using
这会使表单自行关闭,无需使用,您需要按照 MSDN article 中的详细说明关闭它。
您可以确认调用javascript来解决问题:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "alert('test')" }))
{
<input type="submit" value="test" />
}
这应该会弹出警报。
如果第一个失败而第二个失败,则js脚本引用存在问题。这会在浏览器控制台中引发错误。
<强>更新强>
如果您为表单添加ID,则可以使用以下jquery代替( jQuery reference ),而不是以突出方式绑定表单:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { id = "target"}))
{
//form
}
<script>
$(function () {
$("#target").submit(function (event) {
event.preventDefault();
myJsFunction();
});
});
</script>
当文档为ready时,这将绑定到表单。