ユーザーがチェックボックスをクリックしたときに、チェックボックスがオフになっていないかどうかを確認したいと思います。これは、ユーザーがチェックボックスをオフにしたときに検証を実行したいためです。少なくとも1つのチェックボックスをオンにする必要があるためです。したがって、最後のチェックを外すと、自動的に再度チェックされます。
jQueryを使用すると、チェックされているかどうかを簡単に確認できます。
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
しかし、実際には、チェックボックスがオフになったかどうかをチェックするifステートメントのみが必要です。
だから私は次のコードでそれを行うことができると思いました:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
ただし、これには常に「チェックされていない」メッセージが表示されます。本当に私が期待していたものではありません...
デモ: http ://jsfiddle.net/tVM5H/
したがって、最終的には次のようなものが必要になります。
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
しかし、明らかにこれは機能しません。最初の例は使いたくありません。必要なのは「if」ステートメントが1つだけの場合、不要な「else」ステートメントがあるからです。
まず最初に、これはjQueryのバグですか?私にはそれは予期しない振る舞いです。そして第二に、誰かが良い代替案を考えていますか?