MVC Html.BeginForm不是由JQuery提交的

时间:2014-10-26 14:17:26

标签: jquery forms model-view-controller

我的表格非常简单:

<div id="FormDiv">

    @using (Html.BeginForm("MyAction", "MyController", null, FormMethod.Post, new { id = "MyForm", @class = "form-horizontal", role = "form" }))
    {
        @Html.AntiForgeryToken();

        <div class="col-sm-6">
            @Html.DropDownListFor(m => m.PropertyA, Model.A_Items, "--- Select A ---", new { @class = "form-control" })
        </div>

        <div class="col-sm-6">
            @Html.DropDownListFor(m => m.PropertyB, Model.B_Items, "--- Select B ---", new { @class = "form-control" })
        </div>

    }

</div>

和用于在下拉列表选择更改时提交表单的JQuery javascript:

$("#PropertyA").change(function () {
    $(this).parents("form").submit();
});

$("#PropertyB").change(function () {
    $(this).parents("form").submit();
});

但表格没有提交!!!

虽然,当我从视图中删除其中一个下拉列表或更改任何下拉列表的值然后更改另一个下拉列表的值时,表单提交为可疑! 这是某种错误还是其他方式可以提交该表单?

1 个答案:

答案 0 :(得分:1)

可能是您的视图是强类型的,它是触发模型验证,确保所有字段都填充并使用@Html.ValidationMessageFor(x=>x.Property),以便您可以在屏幕上看到哪个元素正在激活验证。

<div class="col-sm-6">
  @Html.DropDownListFor(m => m.PropertyA, Model.A_Items, "--- Select A ---", new { @class = "form-control" })
  @Html.ValidationMessageFor(m => x.PropertyA)
</div>