0

jqueryイベントボタンのクリックですべての入力チェックボックスフィールドを選択したいのですが、ボタンをクリックしても何も起こりません

Jクエリ

$('#selAll').on('click', function() {
   $(".cb").attr('checked', $(this).is(":checked"));
});

HTML

    <input type="button" value="Select All" class="btn" id="selAll" />
    <input type="checkbox" name="a" value="1" class="cb">
    <input type="checkbox" name="b" value="1" class="cb">

これを行うための最良/正しい解決策はどれですか? ありがとう JsFiddleの例

4

5 に答える 5

5

チェックボックスをチェックするには、prop()メソッドをそのまま使用する必要があります。

$('.cb').prop('checked', true);

編集: これは、jQuery API ドキュメントから推奨されています。トグルしたいことがわかりました。これは次の方法で実行できます。

$('.cb').prop('checked', function(i, val) {return !val;}); 

EDIT2: 1 つのボタンですべてのチェックボックスのオン/オフを切り替えたい場合は、スクリプトにオンまたはオフの切り替えを指示する何らかの記録を保持する必要があります。最も簡単なのは、ボタンのキャプションを変更して、そのように条件を設定することです。しかし、それはあなたの選択です。例:

$('#button').on('click', function(){
  // Change values
  $('.cb').prop('checked', ($(this).val() == 'Check'));
  // Change caption of this button
  $(this).val( ($(this).val() == 'Check' ? 'Uncheck' : 'Check') );
});
// HTML
<input type="button" id="button" value="Check" />

もちろん、「すべてチェック」ボタンだけが必要な場合は、最初のコード例が適用されます。

于 2013-07-02T12:06:29.480 に答える
3

  $('#selAll').on('click', function() {
    $(".cb").attr('checked', "checked");
  });

でも機能します.attr()が、コメントセクションで提案されているように、推奨される機能は.prop()

$('.cb').prop('checked', true);

http://api.jquery.com/prop/

于 2013-07-02T12:06:54.310 に答える
0

!の前で使用$(this).is(":checked"):

$('#selAll').on('click', function () {
    $(".cb").attr('checked', !$(this).is(":checked"));
});
于 2013-07-02T12:09:38.713 に答える
0

関数 selectAll() {

$('.selectedId').attr('checked', isChecked('selectall'));

}

関数 isChecked(checkboxId) {

var id = '#' + checkboxId;

return $(id).is(":checked");

}

于 2013-07-02T12:09:44.427 に答える
0

私は常に文字列を使用してchecked属性を「checked」に設定していますが、それが最善の方法であるかどうかはわかりませんが、私の場合は機能します。

あなたがそれを機能させるために:

変化する $(".cb").attr('checked', $(this).is(":checked"));

$("input.cb").attr('checked', "checked");

それはうまくいくはずです!

于 2013-07-02T12:06:29.213 に答える