您不能使用此插件为表单的任何/所有部分动态打开/关闭验证。
但是,您可以随时使用该.rules()
方法动态添加、删除或覆盖您的规则,从而为您提供类似的行为。
然后您可以使用该.valid()
方法来测试表单。
将它们分别放在专用click
的事件处理程序中。
$(document).ready(function() {
// initialize the plugin
$("#form1").validate({
ignore : '*:not([name]),:hidden'
// no rules; rules are set dynamically below
});
// Save Button
$('#save_button').on('click', function() {
// dynamically set the rules
$('input[name="email"]').rules('add', {
required: true,
....
});
// remove all rules from the other fields
$('input[name="city"]').rules('remove');
// force a test of the form
$("#form1").valid();
});
// Submit Button
$('#submit_button').on('click', function() {
// dynamically set the rules
$('input[name="city"]').rules('add', {
required: true,
....
});
// remove all rules from the other fields
$('input[name="email"]').rules('remove');
// force a test of the form
$("#form1").valid();
});
});
概念验证演示:http: //jsfiddle.net/x6YWM/
如果您有许多字段,您可以通过在它们上设置适当的类(如.ruleset1
和)来简化此操作.ruleset2
。然后,您可以使用该方法将它们作为一个组来定位.rules()
。.each()
请记住,如果选择器针对多个元素,则需要将它们包含在 jQuery中...
$('.ruleset1').each(function() { // target multiple elements
$(this).rules('add', { // apply the rules to each
required: true,
....
});
});