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") } }); });