导致复选框忽略其选中值的原因
What would be causing a checkbox to ignore its checked value?
本文关键字:复选框 更新时间:2023-09-26
我正在尝试将html复选框的checked
值初始化为false。但是,当我尝试设置它,然后立即记录它的值时,它仍然显示为true,并且复选框仍然处于选中状态。
是什么原因导致checked
属性忽略通过JavaScript显式设置其值?
console.log( "setting", self.checkbox.testid, "to", self.checked );
self.checkbox.checked = self.checked;
console.log( self.checkbox.testid + " checked: ", self.checkbox.checked ); // still true
啊哈!事实上,问题不在于复选框的checked
属性,而是我试图将其设置为的值。
如果我显式地将self.checked
更改为false
,它现在就可以工作了。所以问题是为什么它被记录为"false",但"false"值实际上不是false
!
的确,当我记录typeof self.checked
时,它实际上是一个值为"false"的字符串!当然,字符串"false"实际上是truthy。真是骗人!
现在的问题是为什么地狱是自我检查一个字符串,但这是我自己要解决的问题。谢谢你帮我仔细想想。
尝试其他方法:
如果你碰巧在使用jQuery:
$('#myCheckbox').removeAttr('checked');
或者,如果没有,试着在复选框上设置一个ID,并确保您处理的是正确的元素:
document.getElementById('myCheckbox').checked = false;
为了通过程序跨浏览器更改复选框的值,您需要执行以下操作:
checkbox.checked=checkbox.defaultChecked=false;
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 如何从javascript/jquery中的复选框中获取布尔值
- 在Ajax中捕获复选框值
- 显示隐藏复选框
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- jquery中的复选框依赖项