您可以使用内置rules()
方法添加规则。 请参阅文档。
这就像两种方法中最好的。您可以避免定义所有规则,.validate()
同时仍然可以无限灵活地定义自定义规则集。然后这些“规则集”可以由自定义class
, name
,id
等分配。
注意:必须在调用后调用该方法.validate()
,并且必须与.each()
.
当您向表单动态添加字段时,此方法也非常有用。
(请注意,与在 中添加规则时定义的自定义消息相比,格式略有不同.validate()
)
jsFiddle 演示
HTML:
<input type="text" class="myclass" name="field1" />
<input type="text" class="myclass" name="field2" />
<input type="text" class="myclass" name="field3" />
jQuery:
$('form').validate({
// your other options
});
// the following method must come AFTER .validate()
$('form').find('.myclass').each(function() {
$(this).rules('add', {
required: true,
digits: true,
range: [1,5],
messages: {
required: "Required input",
digits: "Only digits please",
range: "Please only enter between {0} and {1}"
}
});
});
或者,您可以按字段name
而不是class
...
jsFiddle 演示
HTML:
<input type="text" class="myclass" name="field1" />
<input type="text" class="myclass" name="field2" />
<input type="text" class="myclass" name="field3" />
jQuery:
$('#form').validate({
// your other options
});
// the following method must come AFTER .validate()
$("input[name^='field']").each(function() {
$(this).rules('add', {
required: true,
digits: true
});
});