如果复选框被选中,那么我只需要得到值为1;否则,我需要得到它为0。我如何使用jQuery做到这一点?

$("#ans").val()在这种情况下总是会给我一个right:

<input type="checkbox" id="ans" value="1" />

当前回答

你可以这样执行:

$('input[id=ans]').is(':checked');     

其他回答

使用.is(':checked')来确定它是否被检查,然后相应地设置你的值。

更多信息请点击这里。

我最近经历了一个案例,当用户单击按钮时,我需要检查复选框的值。唯一正确的方法是使用prop()属性。

var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;

这在我的情况下是有效的,也许有人会需要它。

当我尝试了.attr(':checked'),它返回checked,但我想要布尔值和.val()返回属性值的值。

有几个选项,如....

 1. $("#ans").is(':checked') 
 2. $("#ans:checked")
 3. $('input:checkbox:checked'); 

如果所有这些选项都返回true,那么您可以相应地设置值。

function chkb(bool){
if(bool)
return 1;
return 0;
}

var statusNum=chkb($("#ans").is(':checked'));

如果选中复选框,statusNum将等于1,如果没有选中则为0。

编辑:也可以将DOM添加到函数中。

function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}

var statusNum=chkb($("#ans"));

你可以这样执行:

$('input[id=ans]').is(':checked');