Jquery 验证来自组的需求不工作

Jquery validate require from group not working

验证插件的这个功能有一些问题: http://jqueryvalidation.org/require_from_group-method

表格相关部分:

<input class="org-group" type="checkbox" name="org[1]" id="org[1]" value="on">
<input class="org-group" type="checkbox" name="org[2]" id="org[2]" value="on">
<input class="org-group" type="checkbox" name="org[3]" id="org[3]" value="on">

此复选框列表是动态的。它可以有 2 个条目或 50 个条目,这就是我在表单中使用数组的原因。我希望插件确保选中组织组 class 中的 xxx 复选框之一。

我在插件中使用了这个:

$( "#orgform" ).validate({
  rules: {
    org[]: {
      require_from_group: [1, ".org-group"]
    },

但是,它不起作用。无论选中多少个框,表单都会提交。 "submithandler" 工作正常。我在这个表单中还有一些其他的文本字段是必需的。如果这些字段未填写,验证运行正常。

我做错了什么?

您需要确保您已经引用了所有必需的 JQuery 库。如果您只使用 core 库,验证将不起作用。

确保您还引用了 additional-methods.min.js

Fiddle Example

获得所有必需的参考资料后,您需要修改 html 内容,使所有复选框都具有相同的 name。如果所有名称都是唯一的,验证将不起作用。 ids 显然必须保持唯一性。

已更新Html:

<form id="orgform">
  <input class="org-group" type="checkbox" name="org" id="org[1]" value="on">
  <input class="org-group" type="checkbox" name="org" id="org[2]" value="on">
  <input class="org-group" type="checkbox" name="org" id="org[3]" value="on">
  <input class="org-group" type="checkbox" name="org" id="org[4]" value="on">
  <input type="submit" value="Validate">
</form>

请注意,所有 checkboxesname 都为 "org"。

更新 html 后,更新对 validate 的调用以引用 "org" 而不是 "org[]"。如果您检查控制台,您会注意到以下错误:

Uncaught SyntaxError: Unexpected token [

这是因为规则 属性 不接受 []

随着 html 的变化,您还需要更新您的 JQuery。

已更新 JQuery:

$("#orgform").validate({
  rules: {
    org: {
      require_from_group: [1, ".org-group"]
    }
  }
});

注意:请参阅我上面链接的 Fiddle 示例以获取工作示例。