Проверьте, не установлен ли флажок на click - jQuery
Я хочу проверить, если флажок просто снят, когда пользователь нажимает на него. Причина этого заключается в том, что я хочу сделать проверку, когда пользователь снимает флажок. Потому что по крайней мере один флажок должен быть проверен. Поэтому, если он снимает последний флажок, то он автоматически проверяет себя снова.
С помощью 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');
});
но это всегда будет показывать "непроверено" сообщение. Не совсем то, что я ожидал...
demo:http://jsfiddle.net/tVM5H/
Так что в конце концов мне нужно что-то вроде:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
но очевидно, что это не работает. Я скорее не хочу использовать первый пример, потому что тогда у меня будет ненужное утверждение " else когда мне нужно только одно утверждение "если".
Итак, во-первых, это ошибка jQuery? Потому что для меня это неожиданное поведение. А во-вторых, у кого-нибудь есть Иды для хорошей альтернативы?
8 ответов:
ответ уже опубликован будет работать. Если вы хотите использовать jQuery: не вы можете сделать это:
if ($(this).is(':not(:checked)'))
или
if ($(this).attr('checked') == false)
$(document).ready(function() { $("#check1").click(function() { var checked = $(this).is(':checked'); if (checked) { alert('checked'); } else { alert('unchecked'); } }); });
jQuery для проверки проверено? Правда?
if(!this.checked) {
Не используйте базуку, чтобы сделать работу бритвы.
<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
проверьте некоторые ответы на этот вопрос - я думаю, что это может относиться к вашим:
как запустить функцию щелчка после поведения элемента по умолчанию
Я думаю, что вы столкнулись с несогласованностью в реализации браузера . Некоторые предпочитают переключать флажок до запуска события, а некоторые после.
ответ уже размещенные .Но мы можем использовать 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'); }); });