Jquery:检测是否选中了复选框

时间:2013-07-29 01:17:55

标签: jquery

为什么这个简单的if语句总是说该框是未选中的?

  $("#x").prop('checked',true);
//$("#x").prop('checked',false);

 if ($("#x").checked) {
     alert("Checbox is checked");
 } else {
     alert("Checkbox is not checked");
 }

http://jsfiddle.net/f4Tmu/

4 个答案:

答案 0 :(得分:2)

.checked不是jquery属性,而是DOM元素属性。

您必须使用.is(':checked').prop('checked')

$("#x").prop('checked',true);
//$("#x").prop('checked',false);

if ($("#x").is(':checked')) {
     alert("Checbox is checked");
 } else {
     alert("Checkbox is not checked");
 }

答案 1 :(得分:1)

我相信jQuery你可以使用:checked选择器,但在你的情况下,我只会使用原生。从你的代码看起来是你使用本机和jQuery的混合。我不确定它是否正确。

试试这个:

var x = document.getElementById('x');
x.setAttribute('checked', 'checked');

if (x.checked) {
    // Checkbox is checked
} else {
    // Checkbox is not checked
}

答案 2 :(得分:1)

checked是DOM元素属性,因此在DOM元素上使用它:

$("#x")[0].checked

http://jsfiddle.net/f4Tmu/13/

否则使用:

$("#x").is(':checked')

http://jsfiddle.net/f4Tmu/16/

答案 3 :(得分:-2)

这是我的答案,经过测试:

$("#x").attr('checked',true);
//$("#x").prop('checked',false);

if ($("#x").attr("checked")) {
     alert("Checbox is checked");
} else {
     alert("Checkbox is not checked");
}