2011-12-24 13 views
1

I持って次の二つのチェックボックスグループ:jQueryの検証複数のチェックボックスグループ

<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> 

各チェックボックスグループ(フィールドセット)は、同じクラスの名前でタグ付けされています。各グループで少なくとも1つのチェックボックスが選択されるように各グループを検証したいと思います。

私は以下のJQueryを持っていますが、2つの別々のものではなく1つのグループとして見ています。このコードを微調整して、各グループを別々に検証することができますか?

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

このようにして、任意の数のチェックボックスグループを追加して、グループごとに別々のコードを書くことができます。

ありがとうございました!

答えて

2

が必要なのは、長さチェックのためのセレクタを変更することです:

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

ありがとう!私は私が近いと知っていた... – user1002039

2

これは動作するはずです:

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

ありがとうございました!皆さんは素晴らしいです! – user1002039

関連する問題