Javascript removeAttribute(';已选中';)不工作

Javascript removeAttribute(';已选中';)不工作,javascript,checkbox,Javascript,Checkbox,我遇到一个关于复选框的奇怪问题。由于各种原因,我必须根据应用程序的上下文,对复选框输入进行编程检查或取消检查 但是由于未知的原因,我无法取消选中复选框。在internet上搜索会教我删除“checked”属性以取消选中该框,因为“checked”是一个二进制属性: 及 这些主题(以及我读过的许多其他主题)在我的案例中都没有用处:我不想使用jQuery,所以逻辑上也可以使用removeAttribute函数,如下所示: document.getElementById('box').removeA

我遇到一个关于复选框的奇怪问题。由于各种原因,我必须根据应用程序的上下文,对复选框输入进行编程检查或取消检查

但是由于未知的原因,我无法取消选中复选框。在internet上搜索会教我删除“checked”属性以取消选中该框,因为“checked”是一个二进制属性: 及

这些主题(以及我读过的许多其他主题)在我的案例中都没有用处:我不想使用jQuery,所以逻辑上也可以使用removeAttribute函数,如下所示:

document.getElementById('box').removeAttribute('checked');
它似乎被执行了,但没有明显的效果

我的代码有点复杂和庞大,所以我制作了一个更相关的JSFIDLE来向您展示这个问题:

通过使用按钮,无论框的状态如何,您都可以看到用于检查框的按钮正在工作,而要取消选中的按钮则不工作

有什么想法可以让它工作或找到解决办法吗?
谢谢。

选中的
属性描述了字段的默认状态。如果已与字段交互(或已修改其checked属性),则删除该字段将无效

改为设置checked属性。它表示当前的状态

document.getElementById('box').checked = false;

请注意,在第三方托管的示例中,在“单击我以检查”代码中:

…您正在修改属性,字符串
“checked”
正在转换为布尔值
true
。选中的
属性只接受布尔值。这将覆盖默认状态(未选中,因为没有选中的属性)


您甚至从来没有要删除的checked属性。

直接更改属性,
document.getElementById('box')。checked=false这里:确定吗?我认为这是所谓的“二进制属性”,意思是值不重要,所以“真”、“真”、“假”、“不”、“鸭”,所有这些值都表示真?是的,这没关系,谢谢回答!检查这把小提琴
document.getElementById('box').checked = "checked";