我想检查一个复选框是否被取消选中,当用户点击它。原因是因为我想在用户取消选中复选框时进行验证。因为至少需要检查一个复选框。因此,如果他取消选中最后一个,那么它会自动再次检查。
使用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”语句,当我只需要一个’if’语句。
首先,这是一个jQuery错误?对我来说这是意想不到的行为。第二,任何人任何ides为一个好的替代品?
解决方法
尝试这个:
if(!$(this).is(':checked'))