检查是否选中了复选框(js / jquery)

时间:2012-04-20 21:03:11

标签: javascript jquery html checkbox

我想检查是否使用JavaScript / jQuery选中了某个复选框。

这是我尝试过的代码:

var a;
    if ($("#add_desc").checked == 1){
        a = "true";
    }else{
        a= "false";
    }

我也尝试过:

var a;
    if ($("#add_desc").checked){
        a= "true";
    }else{
        a= "false";
    }

一旦我警告变量a,它总是返回false。

知道为什么它对我不起作用?我做错了吗?

谢谢!

6 个答案:

答案 0 :(得分:6)

要在复选框输入中获取checked属性的值,请使用.prop()方法,或直接从DOM元素获取值。 [0]返回第一个选定的DOM元素。

var a;
if ($("#add_desc")[0].checked){
    a= "true";
}else{
    a= "false";
}

var a;
if ($("#add_desc").prop("checked")){
    a= "true";
}else{
    a= "false";
}

修改
对于早于1.6的jQuery版本,.prop不存在,请使用.attr作为直接替代。

答案 1 :(得分:6)

简单,

var a = $('#element:checkbox').is(':checked');

答案 2 :(得分:5)

“jQuery方式”是使用.is(":checked")

var a;
if ($("#add_desc").is(":checked")){ // box is checked
    a = "true";
} else{ // box is not checked
    a= "false";
}

我在我的网络应用程序中经常使用它,它运行良好。

来自jQuery .is documentation page

  

与其他过滤方法不同,.is()不会创建新的jQuery   宾语。相反,它允许您测试jQuery对象的内容   没有修改。这在回调中通常很有用,例如   事件处理程序。

答案 3 :(得分:4)

javascript中的ternary运算符与jQuery .is()相结合是最短的解决方案。

var a = ($("#add_desc").is(":checked")) ? "true" : "false";

答案 4 :(得分:3)

尝试:

if ($('#add_desc').is(':checked')) {
  a = "true";
} else {
  b = "false";
}

您可能也不想使用字符串,即使用truefalse代替"true""false"

答案 5 :(得分:2)

尝试

$get("#add_desc").checked == true

另外

$("#add_desc").prop("checked", true);
$("#add_desc").prop("checked", false);