当复选框被选中时设置布尔变量
Setting boolean variable when checkbox is clicked
我得到了一些HTML,比如一个Bootstrap复选框。默认情况下,复选框是打开的。
<div id="full" class="checkbox">
<label>
<input type="checkbox" checked=""> Include Full Classes
</label>
</div>
我有这个jQuery来检测条目是否被选中
var full;
$('#full').change(function(){
if(this.checked)
{
full = true;
console.log(full);
} else {
full = false;
console.log(full);
}
});
我想实现的是,当复选框被选中时,它会将full
设置为1,如果未选中,则将full
设置为0。
我对full
变量执行console.log()
,在我的输出中,我得到的都是false
。
我想知道我做错了什么?
这是我引用的线程
你需要给你的复选框它自己的ID,这样你就可以确定它是否被选中。现在您正在测试是否检查了div(这是不可能的)-您要做的是检查是否检查了input
元素!
Working Live Demo:
var full;
$('#checkbox').change(function() {
full = this.checked;
console.log(full);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="full" class="checkbox">
<label>
<input id="checkbox" type="checkbox" checked="">Include Full Classes
</label>
</div>
JSFiddle示例:https://jsfiddle.net/qtczor1q/2/
this.checked
的输出是boolean
应该可以做到
var full;
$('#full').change(function(){
full = this.checked ? 1 : 0 ;
//or using jquery
// full = $(this).is(':checked') ? 1 : 0;
console.log(full);
});
首先将所有未检查设置为false。
var $checked = $(':checkbox');
$checked.not(':checked').attr('value', 'false');
$checked.change(function(){
$clicked = $(this);
$clicked.attr('value', $clicked.is( ":checked" ));
});
$('#full')
不是复选框,它是div
。您想要查看div 中的复选框。
var full;
var cb = $('#full input[type=checkbox]');
cb.change(function() {
if (cb.prop('checked')) {
full = true;
console.log(full);
} else {
full = false;
console.log(full);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="full" class="checkbox">
<label>
<input type="checkbox" checked="">Include Full Classes
</label>
</div>
使用if
语句对我来说看起来有点小题大做。正如@joyBlanks正确指出的那样,如果您要寻找的是真或假,那么this.checked
就是您所需要的。但如果你想要1或0,则使用三元操作符。
$(':checkbox').on('change', function() {
console.log( this.checked ); //true or false
console.log( this.checked ? 1 : 0 ); //1 or 0
})
//trigger change event when the page loads -- checkbox is checked when page loads
.change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="full" class="checkbox">
<label>
<input type="checkbox" checked=""> Include Full Classes
</label>
</div>
如果我要这样做,我真的不会使用JQuery。简单点就好。
document.getElementById("checkboxId").checked;
如果你不需要使用JQuery,只需要使用这个变量
相关文章:
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- Angular 2:如何在 GET 和 POST 请求中设置 double、float、int 和布尔类型参数
- 单击JQuery设置布尔标志
- 无法设置布尔简单prefs
- ngAnimateSwap-使用布尔表达式不会按预期设置动画
- 如何从 asp.net 隐藏字段中设置和获取布尔值
- 当函数在 Javascript 中将其设置为 true 时,布尔值返回 false
- 无法将默认布尔参数设置为默认值
- 如何通过php变量设置javascript布尔变量
- 如何在骨干模型属性中设置布尔值true/false
- node.js伊斯坦布尔和茉莉花设置
- Knockout.js 2.0.0 -在这个例子中布尔值是如何设置的?
- 将函数的默认参数设置为布尔值的正确方法
- 通过javascript在java中设置一个布尔标志
- 在javascript函数中设置布尔参数的默认值
- 当复选框被选中时设置布尔变量
- 如何在JavaScript中设置默认布尔值
- Javascript为下拉菜单设置布尔值
- 如何仅在布尔值为false时发出警报(与/或在构造2中设置javascript变量)
- 在JavaScript中设置和获取布尔对象属性