2012-02-04 14 views
3

このトピックについては多くの疑問がありましたが、満足できるものはありません。jQueryのチェックボックスをチェックする最も美しい方法は何ですか?

そうした場合:

$("#myCheckBox").attr("checked", "checked") 

それは属性を変更し、チェックボックスをチェックし、それは「変更」イベントをトリガしませんありません。きれいに見えません。

それともあなたができる:

$("#myCheckbox")[0].checked = true 

は、しかし、これは美しいではありません。

あなたはどう思いますか?

答えて

7

適切な方法は$('#myCheckbox').prop('checked', true);であり、その上でイベントを発生させることができます。 1.6以降

:ボックスをチェックするhttp://api.jquery.com/prop/

+0

しかし、チェックボックスで変更イベントがトリガーされていないようです。あなたは確認できますか? – Blacksad

+0

それは正しいです。 '$( '#myCheckbox')。prop( 'checked'、true).change();'が一番簡単です。さもなければ '$( '#myCheckbox')を実行できます。prop( 'checked'、true); handleCheckbox($( '#myCheckbox')); 'とハンドルチェックボックスは状態などを調べ、必要な処理を行います。 'handleCheckbox'はチェックボックスの' change'ハンドラと同様に書く関数です –

+1

@Blacksadはjavascriptを使ってプロパティや属性の値を設定すると、どのメソッドを使用していてもイベントをトリガしません。イベントを発生させたい場合は、起動します。 '$(要素).trigger( '変更');' –

2

一つの方法は、使用することです。

if (!$('#myCheckbox').prop("checked")){ 
    $('#mycheckbox').click(); 
} 

は、あなたはまだ変更イベントをトリガすると仮定します。一度に複数のボックスをチェックしたい場合は、これを変更する必要があります。

関連する問題