我有以下两个复选框组:
<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!');
}
});
通过这种方式,我可以添加任意数量的复选框组,并对它们进行全部验证,而不是为每个组编写单独的代码块。
谢谢!
答案 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!');
}
});