2011-04-01 14 views
0

1つのチェックボックス(checkAll)をチェックしてすべてを選択する必要があります。選択を解除すると、すべて選択解除する必要があります。さらに、それらがすべて選択されてから 'a'、 'b'または 'c'のチェックを外すと、 'checkAll'もチェックを外す必要があります。jQueryで1つのチェックですべてのチェックボックスを選択

<input type="checkbox" value="" id="checkAll"> 
<input type="checkbox" value="a"> 
<input type="checkbox" value="b"> 
<input type="checkbox" value="c"> 

使用する必要があるトリガーは何ですか?試してみましたが、失敗しました:

答えて

2

changeイベントを使用してください。 #checkAllボックスが変更されたら、対応する他のボックスを変更します。

$(":checkbox").not("#checkAll").change(function() 
{ 
    $("#checkAll").attr("checked", $(":checkbox").not(":checked").not("#checkAll").length ? false : true); 
}); 

基本的にこれが#checkAll変化よりも、チェックボックスは、他のときに実行、およびかどうかそこに依存#checkAllを変更します。他の人によると、あなたはこのような何かを行うことができたときに#checkAllボックスを変更するには

チェックされていないボックスです。

0

私はあなたのコードのいずれかを変更していない、それが私の作品:http://jsfiddle.net/9U2aQ/

あなたが正しくあなたのjqueryのファイルを参照していることを確認します。

+1

この '答えが' ありませんサンタさんのニーズにはまったく対応していません。私は今日投票が残っていれば私はdownvoteするだろう。 – Phrogz

+0

@ santaの必要性は、彼/彼女のコードがなぜ機能していないのかを理解することです。コードが動作することを確認し、なぜ自分の環境で動作していないのかについての推奨を提供しました。 –

0

これは動作するはずです:あなたが何をしたいん

$(':checkbox').not('#checkAll').change(function() 
    { 
     $("#checkAll").attr("checked", $(":checkbox").not(":checked").not("#checkAll").length ? false : true); 
    }); 
    $("#checkAll").change(function() 
    { 
     $(':checkbox').attr('checked', this.checked); 
    }); 
2

シンプルなスクリプト:

はHTML:

<div> 
    <input type="checkbox" value="" id="checkAll"> 
    <input type="checkbox" value="a" class="others"> 
    <input type="checkbox" value="b" class="others"> 
    <input type="checkbox" value="c" class="others"> 
</div> 

をジャバスクリプト:

<script type="text/javascript"> 
    $("#checkAll").change(function() { 
     $(":checkbox").attr("checked", this.checked); 
    }); 
    $(".others").change(function() { 
     if (!$('input.others[type=checkbox]:not(:checked)').length) 
      $("#checkAll").attr('checked', true); 
     if (!$('input.others[type=checkbox]:checked').length) 
      $("#checkAll").attr('checked', false); 
    }); 
</script> 
+0

これは、「checkAll」をクリックすると、すべてのチェックボックスをオンまたはオフにします。しかし、すべてがチェックされ、 "他人"のチェックを外すと "checkAll"のチェックを外す必要があります。また、 "checkAll"が選択されておらず、私が手動で "他人"を選択すると、 "checkAll"が選択されます。申し訳ありませんが、ちょっと畳んだ音です。 – santa

+0

これは私のために正常に動作します。どのブラウザとjqueryのバージョンを使用していますか?あなたはそのスクリプトを何度も使用しますか? (この場合、動作しませんが、動作させるために再配置できます)。 –