jQueryvalidation – 选择多维数组至少1

如何使用jQueryvalidationvalidation以下内容。 用户必须至少选择以下选项之一。

 0 1 2   0 1 2   0 1 2  

要强制select这些select元素中的至少一个,您可以使用require_from_group方法 , 该方法是additional-methods.js文件的一部分 。

 $('#myform').validate({ // other options, rules: { "quantity[adult][seat_a]": { require_from_group: [1, ".group-required"] }, "quantity[adult][seat_b]": { require_from_group: [1, ".group-required"] }, "quantity[adult][seat_c]": { require_from_group: [1, ".group-required"] } }, groups: { myGroup: "quantity[adult][seat_a] quantity[adult][seat_b] quantity[adult][seat_c]" } }); 

这将在所有三个select元素上创建同时且相同的错误消息。 使用groups选项将这些组合成一个,并使用errorPlacement选项将结果消息放入布局中。

重要提示 :您还需要将每个select的默认optionvalue设置为空。 否则,插件认为0是用户的选择,并且不会validation任何内容。

  

要么…

  

编辑:

如果你有大量的元素并且不希望在.rules('add') .validate()单独声明它们,那么在jQuery .each()使用.rules('add')方法。

 $('#myform').validate({ // other options, }); $('.group-required').each(function() { $(this).rules('add', { require_from_group: [1, '.group-required'] }); }); 

工作演示: http : //jsfiddle.net/n1z0Lufw/

此外,使用groups选项合并错误消息,无需手动声明每个字段名称…

 var names = ""; $('.group-required').each(function() { names += $(this).attr('name') + " "; }); names = $.trim(names); $('#myform').validate({ // other options, groups: { myGroup: names } }); $('.group-required').each(function () { $(this).rules('add', { require_from_group: [1, '.group-required'] }); }); 

演示2: http : //jsfiddle.net/scmuxq53/