Jquery проверить флажок запутался? - PullRequest
1 голос
/ 23 июня 2011

Есть идеи, почему этот код продолжает повторяться и работает не так, как ожидалось?

$('#myCheckbox').click(function() {
    if ( $('#myCheckbox').attr('checked')) {
        alert("on");
    } else {
        alert("off");
    }
});

пример здесь

http://jsfiddle.net/BFf5H/

Ответы [ 3 ]

4 голосов
/ 23 июня 2011

1) Используйте опору, добавленную в jQuery 1.6 (наверное)

$('#myCheckbox').click(function() {
    if ( $(this).prop('checked')) {
        alert("on");
    } else {
        alert("off");
    }
});

2) Используйте, чтобы проверить состояние

Попробуйте это:

$('#myCheckbox').click(function() {
        if ( $(this).is(':checked')) {
            alert("on");
        } else {
            alert("off");
        }
    });

Рабочий пример: http://jsfiddle.net/BFf5H/2/

3) @ Предложение Феликса Попробуйте:

$('#myCheckbox').click(function() {
        if ( this.checked) {
            alert("on");
        } else {
            alert("off");
        }
    });

РЕДАКТИРОВАТЬ:

Согласно URL-адресу, предоставленному альтернативным решением OP:

$(".styled").change(function(){
  if(this.checked){
   alert("On");
  } else {
   alert("Off");
  }
})
1 голос
/ 23 июня 2011

Попробуйте:

$('#myCheckbox').click(function() {
    if ( $(this).is(':checked')) {
        alert("on");
    } else {
        alert("off");
    }
});
0 голосов
/ 23 июня 2011
<html>

    <head>

        <script src="http://www.google.com/jsapi" type="text/javascript"></script>
        <script type="text/javascript">google.load("jquery", "1");</script>
        <script type="text/javascript">

            $(document).ready(
                function() 
                {
                    $('#myCheckbox').click(
                        function() 
                        {   
                            if( $(this).attr('checked') == 'checked' )
                            {
                                alert('yes');
                            }
                            else
                            {
                                alert('no');
                            }
                        }
                    );
                }
            );

        </script>

    </head>

    <body>

        <input type="checkbox" checked="checked" id="myCheckbox" />

    </body>

</html>

Загрузить это решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...