如何在readonly字段上禁用jquery验证?

Bri*_*sbe 5 jquery jquery-validate readonly-attribute asp.net-mvc-3

我正在使用的产品使用JQuery验证和MVC3在幕后工作.我有一个字段,我切换为只读(基于下拉列表的值是否> 0).

诀窍是,当该字段不是只读时需要该字段,并且当它是只读时需要提交而没有错误,无论它是否有数据.

我应该怎么做呢?

dan*_*wig 15

$.validator.setDefaults({
    ignore: ':hidden, [readonly=readonly]'
});
Run Code Online (Sandbox Code Playgroud)

ignore参数的默认值为":hidden".通过使用上面的代码重置默认值,可以确保jquery validate仍然不会对隐藏的表单元素起作用,但也不会对具有readonly="readonly"属性的元素起作用.

回复评论

这听起来很奇怪,您可能需要发布一些代码才能获得更多帮助.您可以尝试删除验证错误的一件事是在切换readonly属性时手动验证表单,这可能是这样的:

$('#the_text_box').attr('readonly', 'readonly');
$.validator.setDefaults(':hidden');
$('form').valid();
$.validator.setDefaults(':hidden, [readonly=readonly]');
Run Code Online (Sandbox Code Playgroud)

您还可以在初始页面加载期间执行类似操作,以避免出现即时验证错误消息.

$.validator.setDefaults(':hidden, [readonly=readonly]');
$('form').valid();
Run Code Online (Sandbox Code Playgroud)