使用jQuery将checkbox的值设置为true或false

我有一个checkbox的表单。 有了jQuery,我想将checkbox的值设置为TRUE(如果选中),如果未选中,则值将设置为FALSE。 我怎么能这样做呢?

更新 :使用道具而不是attr

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE"/> $('#vehicleChkBox').change(function(){ cb = $(this); cb.val(cb.prop('checked')); }); 

date

这是jsfiddle

 <input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE" /> $('#vehicleChkBox').change(function(){ if($(this).attr('checked')){ $(this).val('TRUE'); }else{ $(this).val('FALSE'); } }); 

你可以做(​​jQuery 1.6以上):

 $('#idCheckbox').prop('checked', true); $('#idCheckbox').prop('checked', false); 

删除你也可以使用:

 $('#idCheckbox').removeProp('checked'); 

与jQuery <1.6你必须做的

 $('#idCheckbox').attr('checked', true); $('#idCheckbox').removeAttr('checked'); 

使用$('#id-of-the-checkbox').prop('checked', true_or_false);

如果你使用的是古老的jQuery版本,你需要使用.attr('checked', 'checked')来检查和.removeAttr('checked')来取消选中。

尝试这个:

HTML:

 <input type="checkbox" value="FALSE" /> 

JQ:

 $("input[type='checkbox']").on('change', function(){ $(this).val(this.checked ? "TRUE" : "FALSE"); }) 

的jsfiddle

请记住,未经检查的checkbox将不会以常规forms提交,您应该使用隐藏的域名来执行此操作。

 var checkbox = $( "#checkbox" ); checkbox.val( checkbox[0].checked ? "true" : "false" ); 

这会将checkbox的value设置为"true""false"value property是一个string) ,具体取决于它是否unchecked或被checked

适用于jQuery> = 1.0