Javascript 单击复选框时设置布尔变量
我得到了一些类似于引导复选框的HTML。默认情况下,复选框处于启用状态Javascript 单击复选框时设置布尔变量,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我得到了一些类似于引导复选框的HTML。默认情况下,复选框处于启用状态 <div id="full" class="checkbox"> <label> <input type="checkbox" checked=""> Include Full Classes </label> </div> 我想要实现的是,选中复选框时,它会将full设置为1,如果未选中,则
<div id="full" class="checkbox">
<label>
<input type="checkbox" checked=""> Include Full Classes
</label>
</div>
我想要实现的是,选中复选框时,它会将full
设置为1,如果未选中,则将full
设置为0
我对full
变量执行了console.log()
,在我的输出中,得到的只是false
我想知道我做错了什么
这是我正在引用的此
的输出。选中的是布尔值
应该可以实现这一点
var full;
$('#full').change(function(){
full = this.checked ? 1 : 0 ;
//or using jquery
// full = $(this).is(':checked') ? 1 : 0;
console.log(full);
});
您需要为复选框指定自己的ID,以便确定是否选中了它。现在您正在测试div是否被选中(这是不可能的)-您要做的是检查输入元素是否被选中
工作现场演示:
var-full;
$('#复选框')。更改(函数(){
full=此项已检查;
控制台日志(完整);
});代码>
包括全班
$(“#满”)
不是复选框,而是div
。您希望查看div中的复选框
var-full;
var cb=$(“#完整输入[type=checkbox]”);
cb.变更(功能(){
如果(cb.prop(“选中”)){
完整=正确;
控制台日志(完整);
}否则{
满=假;
控制台日志(完整);
}
});代码>
包括全班
在我看来,使用if
语句似乎有些过分。正如@joyBlanks正确指出的那样,如果你要寻找的是真的还是假的,那么这就是你所需要的。但是如果你想要1或0,那么使用三元运算符
$(':checkbox')。在('change',function()上{
console.log(this.checked);//正确或错误
console.log(this.checked?1:0);//1或0
})
//页面加载时触发更改事件——页面加载时选中复选框
.change()代码>
包括全班
首先将所有未选中项设置为false
如果我要这样做,老实说,我不会使用JQuery。简单点就行了
document.getElementById("checkboxId").checked;
如果不需要使用JQuery,只需使用此变量。您应该尝试使用$(this).is(':checked')
而不是此变量。checked
@Sushil仍然显示为false。如果HTML被选中了,我会的。让我快速创建一个jsfiddle。我没有注意到full
是你的div id。@maximillan的答案是正确的div
怎么会有更改
事件?@tymeJV老实说,我真的不知道。我对OP的例子做了最小程度的修改,直到我得到了答案,现在为了清晰/最佳实践,我正在回顾它。不过,我只是编辑了它来做一个复选框更改事件,谢谢你提出这个问题。是的,我觉得它工作起来很奇怪。。。想知道复选框更改事件是否会出现在div中?@tymeJV看起来确实出现了。此处的更多信息:很高兴知道-您也可以在更改处理程序中使用this.checked
,而不是重新创建相同的选择器:D。或者真正缩短它:$('#checkbox').change(function(){full=this.checked;console.log(full);)代码>
var $checked = $(':checkbox');
$checked.not(':checked').attr('value', 'false');
$checked.change(function(){
$clicked = $(this);
$clicked.attr('value', $clicked.is( ":checked" ));
});
document.getElementById("checkboxId").checked;