提问人:TimJohnson 提问时间:10/8/2011 更新时间:10/8/2011 访问量:1348
使用不显眼的验证适用于单个元素,但不适用于整个表单
Using unobtrusive validation works on individual elements but not the whole form
问:
使用具有不显眼验证的 Asp.Net MVC3。我有一个包含几个输入字段的表单。其中一个字段非常简单:
<input id="Name" class="valid" type="text" value="" name="Name" data-val-required="Enter your name." data-val-length-min="5" data-val-length-max="50" data-val-length="Enter a valid name." data-val="true">
然后,我有一些js来验证表单,并且仅在客户端验证通过时才提交它,如下所示:
var $form = $('#contact_form');
var formAction = $form.attr('action');
var serialized = $form.serialize();
if ($form.validate().valid()) {...
现在最后一行总是返回 true(是的,我启用了不显眼)。但是,如果我将最后一行更改为:
if ($form.validate().element('#Name')) { ...
它工作得很好,并返回 false。我有很多字段,不想遍历每个字段,并且对为什么在验证整个表单时它说 true 但验证每个单独的元素正确返回 false 感到困惑。
我尝试过的事情: - 通过 Unobtrusive 的 $.validator.parse(...无济于事。它不是动态表单,在页面加载时呈现。
注意:我还检查了jquery(v1.6.2),jquery.validate.min.js(v1.8.1)和jquery.validate.unobtrusive.min.js中是否加载了。
答:
0赞
Darin Dimitrov
10/8/2011
#1
您不必打电话,而是直接拨打:.validate()
.valid()
if ($form.valid()) {
...
}
评论