Я хочу перевірити, чи не встановлено прапорець, коли користувач натискає на нього. Причиною цього є те, що я хочу зробити перевірку, коли користувач знімає прапорець. Оскільки потрібно встановити принаймні один прапорець. Отже, якщо він знімає останню, то вона автоматично перевіряє себе знову.
За допомогою 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? Тому що для мене це несподівана поведінка. А по-друге, хтось шукає хорошу альтернативу?