【问题标题】:MVC Html.BeginForm not submit by JQueryMVC Html.BeginForm 不由 JQuery 提交
【发布时间】:2014-10-26 14:17:26
【问题描述】:

我的表格很简单:

<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();
});

但是表单没有提交!!!

虽然,当我从视图中删除其中一个下拉菜单或更改任何下拉菜单的值然后更改另一个下拉菜单的值时,表单被怀疑提交! 这是某种错误还是如何提交该表单?

【问题讨论】:

  • 验证可能会触发,两个下拉菜单都有有效值?
  • 哦,就这么简单,完全忘记了不显眼的验证。 @EhsanSajjad 将其作为答案,所以我可以接受。

标签: jquery forms model-view-controller


【解决方案1】:

机会是因为您的视图是强类型的,它正在触发模型验证,请确保所有字段都已填写并使用@Html.ValidationMessageFor(x=&gt;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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多