【问题标题】:jQuery Validation - validate groups of checkboxes with the same name [duplicate]jQuery Validation - 验证具有相同名称的复选框组[重复]
【发布时间】:2016-08-10 14:42:23
【问题描述】:

我正在使用jQuery Validation plugin

我有两组复选框,都具有相同的名称。例如

<div>
  <input class="category-group-1" type="checkbox" name="category[]" value="a">
  <input class="category-group-1" type="checkbox" name="category[]" value="b">
  <input class="category-group-1" type="checkbox" name="category[]" value="c">
</div>

<div>
  <input class="category-group-2" type="checkbox" name="category[]" value="x">
  <input class="category-group-2" type="checkbox" name="category[]" value="y">
  <input class="category-group-2" type="checkbox" name="category[]" value="z">
</div>

我需要要求每个组中至少有一个复选框被选中才能通过验证。但由于验证插件按名称而不是类或 ID 引用字段,我不知道该怎么做。

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 请分享你的javascript
  • 我没有任何与该问题相关的 javascript。到目前为止,我编写的 javascript 不包含与复选框字段相关的任何内容,因为我不知道该怎么做,因此是我的问题。
  • 你不能用你当前的命名方案来做到这一点。 jQuery Validate 插件要求使用唯一名称。示例:第一个分组中的所有内容都命名为 category[1],而第二个分组命名为 category[2]
  • @Sparky 谢谢,我担心可能是这种情况。不幸的是,更改命名方案不是一种选择。啊,好吧,至少我知道不要再尝试了!

标签: javascript jquery checkbox jquery-validate


【解决方案1】:

在 jQuery 中使用 each 函数。

$(function(){
    isChecked=false;

    $('.category-group-1').each(function(){
        if ($(this).prop('checked')){
            isChecked=true;
            return;
        }   
    })
    alert(isChecked);
}))

【讨论】:

  • 他希望至少选中一个复选框,而不是全部
  • @oliv37。哎呀。我误解了这个问题。固定。
  • @Matt 谢谢,但这个问题与 jQuery Validation 插件有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多