我正在使用的产品使用JQuery验证,MVC3在幕后工作。我有一个字段,我切换为只读(根据下拉列表的值是否> 0)。
诀窍是,当该字段不是只读时需要该字段,并且当它是只读时需要提交而没有错误,无论它是否有数据。
我该怎么做呢?
答案 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();