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

时间:2012-05-29 16:41:50

标签: jquery asp.net-mvc-3 jquery-validate readonly-attribute

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

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

我该怎么做呢?

1 个答案:

答案 0 :(得分:15)

$.validator.setDefaults({
    ignore: ':hidden, [readonly=readonly]'
});

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

回复评论

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

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

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

$.validator.setDefaults(':hidden, [readonly=readonly]');
$('form').valid();