1

次のコードがあります。通常はチェックボックスの上にある LABEL 要素を使用して、ページ上のすべてのチェックボックスをチェックします。同じ LABEL 要素を使用してすべてのボックスのチェックを外すにはどうすればよいでしょうか。

jQuery(document).ready(function($) {

 var $checkBoxes = $('input[type="checkbox"]');

 $('label').click(function() {
   $checkBoxes.attr('checked', true);
 });
});     
4

5 に答える 5

3

トグルするには、次のように状態をどこかに保存する必要がありますdata()

jQuery(document).ready(function($) {
    var $checkBoxes = $('input[type="checkbox"]');

    $('label').on('click', function() {
        var check = !$(this).data('checked');
        $checkBoxes.prop('checked', check);
        $(this).data('checked', check);
    });
});    

フィドル

于 2013-07-03T20:49:10.760 に答える
2

次のようなものを試すことができます:

var checked = 0;

$('label').click(function() {
   if(checked) {
       $checkBoxes.prop('checked', true);
       checked = 1;
   } else {
        $checkBoxes.prop('checked',false);
        checked = 0;
   }
 });
于 2013-07-03T20:49:03.743 に答える
0

まず、 の.prop()代わりに使用し.attr()ます。

このコードは動作するはずです (テストされていません):

$checkBoxes.prop('checked', $checkBoxes.not(':checked').length ? true : false);

もう一度読んだ後、それがあなたが望むものかどうかわかりません。「チェックオール」ボタンをクリックしたときに、1 つ以上のチェックボックスがオフになっている場合、他のすべてのチェックボックスをオンにするか、実際に「トグル ボタン」をオフにするか。

于 2013-07-03T20:50:34.770 に答える