JQuery验证多个复选框组

时间:2011-12-24 02:01:04

标签: jquery validation checkbox checkboxlist

我有以下两个复选框组:

<fieldset class="CbxGroup">
  <legend>Checkbox Group (required)</legend>
  <label><input type="checkbox" name="cbxGroup1[]" value="one" id="cbxGroup1_0">One </label>
  <br>
  <label><input type="checkbox" name="cbxGroup1[]" value="two" id="cbxGroup1_1">Two </label>
  <br>
  <label><input type="checkbox" name="cbxGroup1[]" value="three" id="cbxGroup1_2">Three</label>
  <br>
  <label><input type="checkbox" name="cbxGroup1[]" value="four" id="cbxGroup1_3">Four </label>
  <br>
  <label><input type="checkbox" name="cbxGroup1[]" value="five" id="cbxGroup1_4">Five </label>
  <br>
</fieldset>

<fieldset class="CbxGroup">
<legend>Checkbox Group (required)</legend>
  <label><input type="checkbox" name="cbxGroup2[]" value="one" id="cbxGroup2_0">One </label>
  <br>
  <label><input type="checkbox" name="cbxGroup2[]" value="two" id="cbxGroup2_1">Two </label>
  <br>
  <label><input type="checkbox" name="cbxGroup2[]" value="three" id="cbxGroup2_2">Three</label>
  <br>
  <label><input type="checkbox" name="cbxGroup2[]" value="four" id="cbxGroup2_3">Four </label>
  <br>
  <label><input type="checkbox" name="cbxGroup2[]" value="five" id="cbxGroup_4">Five </label>
  <br>
</fieldset>

每个checkbox-group(fieldset)都标有相同的类名。我想验证每个GROUP,因此在每个组中至少选中了一个复选框。

我有以下JQuery,但它将它们视为一个组而不是两个独立的组。你能帮我调整一下这段代码,以便分别验证每个组吗?

$('.CbxGroup').each(function() {
        if($('.CbxGroup input[type=checkbox]:checked').length == 0) {
            alert('not selected!');
        }
        else{
            alert('selected!');
        }
    });

通过这种方式,我可以添加任意数量的复选框组,并对它们进行全部验证,而不是为每个组编写单独的代码块。

谢谢!

2 个答案:

答案 0 :(得分:2)

这应该有效:

$('.CbxGroup').each(function() {
    if ($(this).find(':checked').length == 0) {
        alert('not selected!');
    }
    else{
        alert('selected!');
    }
});

答案 1 :(得分:2)

您只需更改选择器进行长度检查:

$('.CbxGroup').each(function() { 
    if($(this).find('input[type=checkbox]:checked').length == 0) { 
        alert('not selected!'); 
    } 
    else{ 
        alert('selected!'); 
    } 
});