我想检查当用户单击复选框时是否只是未选中该复选框。这样做的原因是因为我想在用户取消选中复选框时进行验证。因为至少需要选中一个复选框。因此,如果他取消选中最后一个,则它将自动再次进行自我检查。
使用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!!!
}
});
但这显然行不通。我宁愿不想使用第一个示例,因为那样的话,当我只需要一个'if'语句时,就会有一个不必要的'else'语句。
首先,这是一个jQuery错误吗?对我来说,这是意外的行为。其次,有人有理想的替代品吗?