jQuery使用通配符validation设置规则以查找目标字段
是否有可能通过通配符添加规则? 我认为不可能设置这样的规则……
$("#form").validate({ // errorLabelContainer: $("div#error"), errorElement: "p", errorClass: "form-error", rules: { $("input[name*='x.child']"): { required: true, minlength: 5 } } });
使用内置rules()
方法添加规则。 见文档。
注意:调用.validate()
后 必须调用此方法。
jsFiddle DEMO
$("#form").validate({ errorElement: "p", errorClass: "form-error" }); // the following method must come AFTER .validate() $("input[name*='x.child']").each(function() { $(this).rules('add', { required: true, minlength: 5 }); });
当您向表单动态添加字段时,此方法也非常有用。
以下结合自定义messages:
。 请注意,格式与在.validate()
添加规则作为选项略有不同…
$("input[name*='x.child']").each(function() { $(this).rules('add', { required: true, minlength: 5, messages: { required: "Required input", minlength: jQuery.format("At least {0} characters are necessary") } }); });
正如其他地方所提到的,你也可以创建一个class
并使用这样的…
jsFiddle DEMO
HTML:
jQuery的:
$("#form").validate({ errorElement: "p", errorClass: "form-error" }); // the following method must come AFTER .validate() $('#form').find('.myclass').each(function() { $(this).rules('add', { required: true, minlength: 5, messages: { required: "Required input", minlength: jQuery.format("At least {0} characters are necessary") } }); });