我正在映射css类名不同的规则如何避免重复addClassMethod并只使用一次?
var cssClasses = {
rules : {
required: 'validate-required',
validateNumber: 'validate-number',
validateEmail: 'validate-email'
}
}
$.validator.addClassRules( selectors.rules.required, {
required: true
});
$.validator.addClassRules( selectors.rules.validateNumber, {
number: true,
});
$.validator.addClassRules( selectors.rules.validateEmail, {
email: true
});
试图像这样创建一个addClassRules
方法,但这不起作用
$.validator.addClassRules( selectors, {
rules: {
required: {
required: true
},
validateNumber: {
number: true
},
validateEmail: {
email: true
}
}
});
答案 0 :(得分:2)
“我正在映射css类名不同的规则......”
为什么呢?将这些规则映射到一个类时没有任何意义,只需将它们作为类名单独使用就可以分配这些规则。
<input class="required number email" ....
否则,.addClassRules()
的完整目的是创建一个“复合”规则,可以使用单个自定义类将其分配给该字段。 / p>
<input class="myClassRule" ....
如果您只想将一个规则分配给一个类,那么使用.addClassRules()
方法是没有意义的,因为每个规则(布尔规则)都可以表示为一个类。
Object Literal由key: value
对组成,表示具有规则列表的类名。 rules
选项与.addClassRules()
无关,也不在此方法内。
这些新的addClassRules
规则仅由类指定,这些不是您可以在.validate()
方法中使用的。
示例1
$.validator.addClassRules( "yourClass", {
required: true,
number: true,
email: true
});
将课程yourClass
应用于表单字段时,required
,number
和email
规则将生效。
<input class="yourClass" ...
示例2 ,一次创建多个不同的类规则。
$.validator.addClassRules({
classFoo: {
required: true,
number: true
},
classBar: {
required: true,
email: true
}
});
当课程classFoo
应用于表单字段时,required
&amp; number
规则将生效。将课程classBar
应用于表单字段时,required
&amp; email
规则将生效。
<input class="classFoo" ....
<input class="classBar" ....
“试图像这样创建一个
addClassRules
方法,但这不起作用”
如上所述构造不正确。 Please refer to the documentation for .addClassRules()
更多组合规则的方法......
jQuery Validation Plugin - adding rules that apply to multiple fields
How can we specify rules for jquery validation plugin by class?