checkbox возвращает значение «on» после того, как оно не отмечено - PullRequest
2 голосов
/ 01 сентября 2011

Я следую учебному пособию, в котором вы устанавливаете флажок, который включает отключенную кнопку, и когда вы снимаете флажок, кнопка снова отключается. Проблема в том, что когда я снимаю флажок, кажется, что флажок все еще находится во включенном состоянии, потому что кнопка не отключена. Код работает в Chrome, но не в Firefox 3.6.

Вот мой код:

<p><input type="checkbox" id="agree" >I agree</p>
<input id="continue" type="button" value="continue" disabled='true'>


<script>
        $('#agree').change(function(){
       var state = $(this).attr('value');
        if(state == 'on'){
        $('#continue').removeAttr('disabled');
        }else if(state == ''){
            $('#continue').attr('disabled', 'false');
        }
        });
    </script>

Ответы [ 3 ]

7 голосов
/ 01 сентября 2011

значение проверки флажка не меняется с .val(), вы должны использовать .is('checked') примерно так:

$('#agree').change(function() {
    var state = $(this).is(':checked'); //state = true/false depending on state
    if (state) { //if true
        $('#continue').removeAttr('disabled'); //remove disabled
    } else { //else (false)
        $('#continue').attr('disabled', 'disabled'); //add disabled (you shouldn't set it to 'false' as it WILL be disabled and it'll confuse you.
    }
});

Вот Пример , чтобы увидеть мои очки.

1 голос
/ 01 сентября 2011

Попробуйте:

$(function() {
    $('#agree').click(function() {
        if ($(this).is(':checked')) $('#continue').attr('disabled', false);
        else $('#continue').attr('disabled', true);
    });
});

ССЫЛКА: http://jsfiddle.net/Mmm4h/

1 голос
/ 01 сентября 2011

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

$('#agree').change(function() {
    if($("#agree").is(":checked"))
        $('#continue').removeAttr('disabled');
    else
        $('#continue').attr('disabled', false);
});

http://jsfiddle.net/TGQZs/1/

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