ASP.Net MVC 4 Set' onsubmit'在表格提交

时间:2015-02-19 09:31:12

标签: html asp.net asp.net-mvc asp.net-mvc-4 razor

我有以下表格:

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

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

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

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

1 个答案:

答案 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时,这将绑定到表单。