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

Bar*_*uch 3 html javascript checkbox jquery

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

这是我试过的代码:

var a;
    if ($("#add_desc").checked == 1){
        a = "true";
    }else{
        a= "false";
    }
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var a;
    if ($("#add_desc").checked){
        a= "true";
    }else{
        a= "false";
    }
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

use*_*654 7

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

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

要么

var a;
if ($("#add_desc").prop("checked")){
    a= "true";
}else{
    a= "false";
}
Run Code Online (Sandbox Code Playgroud)

编辑
对于早于1.6的jQuery版本,如果.prop不存在,请.attr用作直接替换.


Rob*_*ben 6

简单,

var a = $('#element:checkbox').is(':checked');
Run Code Online (Sandbox Code Playgroud)


Nat*_*han 5

"jQuery方式"将使用.is(":checked"):

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

我在我的网络应用程序中使用了很多,它运行得很好.

jQuery .is文档页面:

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