0

私のアップロードフォームには、いくつかの選択ボックスがあります。これらは、#age-groups、#subjects、#topics と呼ばれる div に配置されます。

jquery を使用して、ユーザーが 3 つの個別の div のそれぞれから少なくとも 1 つのチェックボックスをクリックできるようにしたいと考えています。

誰かがこれを行う方法を理解するのを手伝ってください。

各divの少なくとも1つのチェックボックスがクリックされたときに、関数に出力させたい:

   if (at least 1 checkbox is ticked in each of the 3 divs)
   {
     $('#two')
         .append('<div class="done rotatetwo wiggler"></div>')
         .addClass('grey')
   }

可能であれば、この関数は、必要な最後の選択ボックスが選択されるとすぐに上記のコードを出力できます。

4

4 に答える 4

0

3つのセレクターを使用して3つのDIV内のチェックされたチェックボックスを識別しlength、結果のjQueryオブジェクトのプロパティを調べて、それらがゼロより大きいことを確認する必要があります。

if($('#age-groups input:checkbox:checked').length && ... ) {
    // do your stuff here
}

divのセレクターのみを含めました#age-groupsが、他の2つを選択するようにそれを変更できるはずです。

于 2012-04-04T11:48:50.537 に答える
0
$(":checkbox").click(function(){
    if (($("#age-groups input:checked").length>0) && ($("#subjects input:checked").length>0) && ($("#topics input:checked").length>0){
        $('#two').append('<div class="done rotatetwo wiggler"></div>').addClass('grey');
    }
});
于 2012-04-04T11:49:38.710 に答える
0

-- 質問を読み間違えました。これは、関連するすべての div で少なくとも 1 つのボックスが選択されているかどうかを確認する場合に役立ちます。

このようなことを試してください:

if($("#age-groups input[name^='foo']:checked:enabled, #subjects input[name^='foo']:checked:enabled, #topics input[name^='foo']:checked:enabled").length > 0)
// at least one selected
else
// none selected

もちろん、親 div を使用してグループ化するのではなく、すべてのチェック ボックスにクラスを追加すると、これを簡素化できます。

if( $("input[name^='foo'].test:checked:enabled").length > 0)
// something selected

お役に立てれば!

于 2012-04-04T11:49:51.007 に答える
0

決定するには、チェックボックス/選択ボックスの親をチェックする必要があります。

これを見てください

基本的、

HTML

<fieldset id="age-groups">
  <input type="checkbox" name="chk[]" value="Apples" />
  <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

JavaScript/Jクエリ

 var atLeastOneIsChecked_ageGroups = $('#age-groups :checkbox:checked').length > 0;

あなたのために働くでしょう

于 2012-04-04T11:43:20.770 に答える