5

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

诀窍是,该字段非只读时需要必填,只读时无论是否有数据都需要提交无误。

我该怎么做呢?

4

1 回答 1

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();
于 2012-05-29T16:59:49.580 回答