91

ユーザーがチェックボックスをクリックしたときに、チェックボックスがオフになっていないかどうかを確認したいと思います。これは、ユーザーがチェックボックスをオフにしたときに検証を実行したいためです。少なくとも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のバグですか?私にはそれは予期しない振る舞いです。そして第二に、誰かが良い代替案を考えていますか?

4

8 に答える 8

177

これを試して:

if(!$(this).is(':checked'))

デモ

于 2012-06-22T15:24:03.737 に答える
61

すでに投稿されている回答は機能します。jQueryを使用したい場合:notこれを行うことができます:

if ($(this).is(':not(:checked)'))

また

if ($(this).attr('checked') == false)
于 2012-06-22T15:27:25.137 に答える
7

チェックされているかどうかをチェックするjQuery?本当に?

if(!this.checked) {

かみそりの仕事をするためにバズーカを使用しないでください。

于 2012-06-22T15:26:05.340 に答える
6
$(document).ready(function() {
        $("#check1").click(function() {
            var checked = $(this).is(':checked');
            if (checked) {
                alert('checked');
            } else {
                alert('unchecked');
            }
        });
    });
于 2013-10-06T02:47:56.897 に答える
3
<script type="text/javascript">

 if(jQuery('input[id=input_id]').is(':checked')){
  // Your Statment
 }else{
  // Your Statment
 }

 OR

 if(jQuery('input[name=input_name]').is(':checked')){
  // Your Statment
 }else{
  // Your Statment
 }

</script>

ここから取得したコード:http://chandreshrana.blogspot.in/2015/10/how-to-check-if-checkbox-is-checked-or.html

于 2016-03-10T06:29:13.203 に答える
2

この質問に対する答えのいくつかをチェックしてください-私はそれがあなたのものに当てはまるかもしれないと思います:

要素のデフォルトの動作の後にクリック機能を実行する方法

onclick関数のブラウザ実装で矛盾が発生していると思います。イベントが発生する前と発生した後にチェックボックスを切り替えることを選択する人もいます。

于 2012-06-22T15:27:47.313 に答える
1

回答はすでに投稿されていますが、jqueryもこのように使用できます

デモ

$(function(){
    $('#check1').click(function() {
        if($('#check1').attr('checked'))
            alert('checked');
        else
            alert('unchecked');
    });

    $('#check2').click(function() {
        if(!$('#check2').attr('checked'))
            alert('unchecked');
        else
            alert('checked');
    });
});
于 2013-09-23T12:53:49.307 に答える
0

このようにしてください

if (typeof $(this).attr("checked") == "undefined" )

// To check if checkbox is checked
if( $(this).attr("checked")=="checked")
于 2013-06-21T10:19:39.257 に答える