0

フィドルを確認してください

コードは次のとおりです。

$(document).ready(function(){
        $('#main_chk').click(function(){    

            if(this.checked)
            {
                $(".chks").attr('checked', true);
            }
            else
            {
                $(".chks").removeAttr('checked');                                           
            }

        })
})

初めて機能します(最初のチェックボックスをクリックする必要があります)。チェックボックスが切り替わりますが、再試行しても機能しません。

4

4 に答える 4

3

代わりに.change()とを使用してください。.prop()

$(document).ready(function () {
    $('#main_chk').change(function () {
        if (this.checked) {
            $(".chks").prop('checked', true);
        } else {
            $(".chks").prop('checked', false);
        }
    });
});

また、次のように簡略化できます。

$(document).ready(function () {
    $('#main_chk').change(function () {
        $(".chks").prop('checked', this.checked);
    })
})

こちらの実例をご覧ください。

注:属性idは一意である必要があります。HTMLマークアップを修正してください。

于 2013-02-19T08:00:42.127 に答える
1

あなたはこれを試すことができます:http: //jsfiddle.net/6bKyq/

 $(document).ready(function(){
    $('#main_chk').click(function(){    
        $(".chks").prop('checked', this.checked);
    });
 });
于 2013-02-19T08:02:13.750 に答える
0

あなたが使用することができます:

$('#main_chk').mousedown(function() {
 if (!$(this).is(':checked')) {
     $(this).trigger("change");
 }
});
于 2013-02-19T08:02:53.653 に答える
0

最初に..同じ名前のIDが複数あるため、HTMLは無効です...IDは常に一意である必要があります..すべてのIDをクラスに変更してください。

次に、prop();を使用できます。

 $('#main_chk').click(function(){   

    if(this.checked)
    {
      $(".chks").prop('checked', true);
    }
    else
    {
       $(".chks").prop('checked',false);                                            
    }


 })
于 2013-02-19T08:04:09.877 に答える