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

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

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

当前回答

只需使用$(selector).is(':checked')

它返回一个布尔值。

其他回答

有几个选项,如....

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

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

你还可以使用:

$("#ans:checked").length == 1;

我发现下面的方法对我有用,混合了其中一个答案,但是有if语句。

$('#checkbox').on('change', function () {
 let checkbox_true;
  checkbox_true = $('#checkbox').prop("checked") ? 1 : 0 ;
   if (checkbox_true === 1) {
     alert('Yes');
   } else {
     alert('no');
   }
})
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"));
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;