Я хочу проверить, не сняли ли флажок, когда пользователь нажимает на него. Причина этого в том, что я хочу выполнить проверку, когда пользователь снимает флажок. Потому что нужно поставить хотя бы один флажок. Так что если он снимет отметку с последней, то она снова автоматически проверит себя.
С 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!!!
}
});
Но очевидно, что это не работает. Я скорее не хочу использовать первый пример, потому что тогда у меня будет ненужный оператор else, когда мне понадобится только один оператор if.
Итак, во-первых, это ошибка jQuery? Потому что для меня это неожиданное поведение. И во-вторых, у кого-нибудь есть идеи для хорошей альтернативы?