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

Check if a check box is checked or not (js/jquery)

本文关键字:js jquery 复选框 是否 检查      更新时间:2023-09-26

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

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

谢谢!

若要在复选框输入上获取 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 作为直接替换。

简单,

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

"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对象的内容。 无需修改。这在回调中通常很有用,例如 事件处理程序。

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

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

尝试:

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

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

尝试

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

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