ASP.Net MVC 4 在表单提交时设置 'onsubmit'

ASP.Net MVC 4 Set 'onsubmit' on form submission

我有以下表格:

@Html.BeginForm("ActionMethod","Controller",FormMethod.Post)

提交时我想 运行 一个 Javascript 函数,所以我添加了以下内容:

@Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "myJsFunction()" })

但是,它不起作用...我做错了什么?谢谢!

你需要这个:

@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "return myJsFunction()" }))
{
        //form
}

请注意 using 这会使表单自动关闭,无需使用您需要关闭它,如 MSDN article.[=17 中所述=]

您可以确认调用 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.

时,这将在表单时绑定