Jquery验证要求组不工作

时间:2016-01-17 12:40:09

标签: javascript jquery jquery-validate

验证插件的此功能有些问题: 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个条目,这就是我在表单中使用数组的原因。我希望插件能够确保检查org-group类中的一个xxx复选框。

我在插件中使用它:

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

然而,它不起作用。无论检查的盒子数量多少,表格都会提交。 “submithandler”工作正常。我在这个表单中有一些其他文本字段是必需的。如果未填写这些字段,则验证运行正常。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要确保已经引用了所有必需的JQuery库。如果您只使用核心库,则验证无法正常运行。

确保您还引用了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>

请注意,所有checkboxes都有name&#34; org&#34;。

在您更新了html后,将通话更新为validate以引用&#34; org&#34;而不是&#34; org []&#34;。如果您检查控制台,您会注意到以下错误:

Uncaught SyntaxError: Unexpected token [

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

通过html更改,您还需要更新您的JQuery。

更新了JQuery:

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

注意:请参阅上面链接的小提琴示例以获取一个工作示例。