3

我想检查是否使用 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";
    }

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

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

谢谢!

4

6 回答 6

7

要获取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用作直接替换。

于 2012-04-20T21:08:02.133 回答
6

简单的,

var a = $('#element:checkbox').is(':checked');
于 2012-04-20T21:09:44.340 回答
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文档页面

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

于 2012-04-20T21:06:42.710 回答
4

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

var a = ($("#add_desc").is(":checked")) ? "true" : "false";
于 2012-04-20T21:05:48.373 回答
3

尝试:

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

您可能也不想使用字符串,即使用trueandfalse而不是"true"and"false"

于 2012-04-20T21:06:42.560 回答
2

尝试

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

$("#add_desc").prop("checked", true);
$("#add_desc").prop("checked", false);
于 2012-04-20T21:07:31.670 回答