15

我有一个小的 Ajax 应用程序,我在其中使用 Razor 视图来最初生成 HTML 表单段,后来我使用 knockout.js 从中读取和写入。虽然我没有执行非 Ajax 操作请求,但我使用 Razor 生成 HTML,因此我喜欢自动生成 jQuery Validation 属性。例如,在我的单个页面中,我呈现了一个隐藏的表单,如下所示:

<section id="person-detail">
    @Html.Action("EditPartial", "Person")
</section>

EditPartial操作返回一个看起来很像这样的局部视图:

@using (Html.BeginForm())
{
    <fieldset>
        @Html.HiddenFor(model => model.Id, new { data_bind = "value: id" })
        <div class="editor-label">
            @Html.LabelFor(model => model.FirstName)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.FirstName, new { data_bind = "value: firstName" })
            @Html.ValidationMessageFor(model => model.FirstName)
        </div>
        <p>            
            <a href="#" data-bind="click: save">Update</a>&nbsp;&nbsp;
            <a href="#" data-bind="click: delete">Delete</a>
        </p>
    </fieldset>
}

因为我实际上从未发布过表单,并且由于一些未知因素,尽管我Person模型上的所有属性都标有该Required属性,但我看不到客户端验证的迹象。单击保存按钮时,我必须做什么才能触发此验证?

4

1 回答 1

19

假设您的表单有一个“main”类:

    $('form').submit(function() {
            var $form = $('form.main');
            $form.valid();
    });
于 2013-02-04T08:18:19.840 回答