2011-02-06 9 views
2

ほとんどの人が知っているように、チェックボックスをオンにすると、少なくとも2つの簡単な方法が見つけられます。最高であるこれらの2つの方法のチェックボックスがオンになっているかどうかを確認する方法は?

($('#checkbox:checked').val() != undefined) OR​​

?どうして?

+2

チェックボックスの値は必ずしも "オン"である必要はありません。 "値"属性がある場合、その値が取得されます。 – bart

答えて

6

私は

$('#checkbox').is(':checked'); 

が進むべき道だと思います。

+1

re:why - 自動的にブール値true/falseに評価されるため、 – mVChr

+0

ありがとうございますmVChr - 説明を追加するのを忘れました。 – Jan

+1

追加するだけで、 'if($(" checkbox:checked ")。length)'もあります。 – karim79

2

別の方法

if ($('#myCheckbox').attr("checked")) { .. } 

とにかく...私はこれらのいずれかが必ずしも良いか悪いかではないと思います。 jQueryはブラウザ間で動作するように設計されているため、いずれのブラウザでも動作するはずです。誰かがパフォーマンスや何かのために実際にそれらをベンチマークする時間を取っているのかどうかは確かではありません。

+0

これはjquery 1.9+では動作しません。あなたは$( '#myCheckbox')を使う必要があります。prop( 'checked') – hubert

6

あなたは生の要素にアクセスしている場合は、あなたのようなものを使用することができるはずです。

this.checked 

しかし、この方法で任意のクロスブラウザの互換性の問題があるかもしれません場合、私は知りません。

+1

これはイベントハンドラのコンテキストでは良く、 'is'フィルタを使うよりも短いです。 '$("#foo ")。change(function(){if(this.checked){...}}); ' - そして、これは完全にクロスブラウザーです。 – karim79

+1

jQueryオブジェクトを配列として扱うことで、生の要素に到達することができます。つまり、数値インデックスを使用します。 '$( 'checkbox')[0] .checked' *は動作します。 – bart

関連する問題