我有一个小的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>
<a href="#" data-bind="click: delete">Delete</a>
</p>
</fieldset>
}
因为我实际上从未发布过该表单,并且由于一些未知数,尽管Person
模型上的所有属性都标有Required
属性,但我看不到客户端验证的迹象。单击我的保存按钮时,我该怎么做才能触发此验证?
答案 0 :(得分:12)
假设您的表单有一个“main”类:
$('form').submit(function() {
var $form = $('form.main');
$form.valid();
});