我想检查是否使用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。
知道为什么它对我不起作用?我做错了吗?
谢谢!
答案 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";
}
您可能也不想使用字符串,即使用true
和false
代替"true"
和"false"
答案 5 :(得分:2)
尝试
$get("#add_desc").checked == true
另外
$("#add_desc").prop("checked", true);
$("#add_desc").prop("checked", false);