我已经使用此规则验证用户帐单邮寄地址,如果他想要帐单(输入#billyes已选中),这是我当前的代码:
//BILLING VALIDATION
legal_id: {
required: {
depends: function(element) {
return $('#billyes').is(":checked");
}
}
},
billing_name: {
required: {
depends: function(element) {
return $('#billyes').is(":checked");
}
}
},
billing_adress: {
required: {
depends: function(element) {
return $('#billyes').is(":checked");
}
}
},
.... ETC
行return $('#billyes').is(":checked");
我想做这样的事情:
//BILLING VALIDATION
legal_id,billing_name,billing_adress,etc: {
required: {
depends: function(element) {
return $('#billyes').is(":checked");
}
}
}
这可能吗?还有其他选择吗?
谢谢你。
答案 0 :(得分:2)
legal_id,billing_name,billing_adress,etc: {
在.validate()
方法中,您根本不能做任何类似的事情。 rules
选项中的对象字面值必须为key:value
对,其中key
只能是单个字段name
。
但是,有一种方法可以同时将同一规则应用于多个字段:
您可以将.rules()
方法与jQuery .each()
结合使用。但是你需要一个聪明的jQuery选择器来同时将它们全部定位。就像"以"开头选择器或class
。您无法使用"以billing_
"开头由于您还有legal_id
,因此您需要为这些字段分配class
或执行其他操作。
$('.yourFields').each(function() {
$(this).rules('add', {
required: {
depends: function(element) {
return $('#billyes').is(":checked");
}
}
});
});
否则,在.validate()
方法中,没有捷径。