Javascript 复选框设置为checked=false不工作

Javascript 复选框设置为checked=false不工作,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我正在生成一个带有checked=“false”的HTML输入,但是复选框显示为选中状态 我在javascript控制台中执行了以下操作,但不太清楚发生了什么。使用.prop()将值设置为false后生成的HTML看起来相同,只是现在表单上没有选中复选框 > $(':input[checked]').prop('checked'); < true > $(':input[checked]') < [ <input type=​"checkbox" class=​"c

我正在生成一个带有
checked=“false”
的HTML输入,但是复选框显示为选中状态

我在javascript控制台中执行了以下操作,但不太清楚发生了什么。使用
.prop()
将值设置为false后生成的HTML看起来相同,只是现在表单上没有选中复选框

> $(':input[checked]').prop('checked');
< true
> $(':input[checked]')
< [
<input type=​"checkbox" class=​"caseVal" checked=​"false">​
]
> $(':input[checked]').prop('checked',false);
< [
<input type=​"checkbox" class=​"caseVal" checked=​"false">​
]
$(':输入[选中]).prop('checked');
$(':输入[选中])
< [
​
]
>$(':输入[checked]).prop('checked',false);
< [
​
]
我的印象是,我应该只设置
checked=“checked”
,或者根本不包括checked属性,如果它为false,这是最佳实践吗?无论哪种方式,我都想知道上述代码中发生了什么。

不要将
checked=“false”

您只能将checked=“checked”用于有效的XHTML,否则您会这样做

<input type="checkbox" checked>


浏览器不关心为checked属性指定了什么值,只要它在checkbox输入标记中看到
checked
,它就被标记为checked。

如何取消选中在这种情况下,示例my code是:(见下文)


包括为真,省略为假你的例子对我很有用。您只是在查看控制台输出,还是实际的DOM呈现?您是否尝试过
.removeAttr()
?请检查
prop()的这个可能的副本,它不更新HTML,只更新DOM。如果以后要检查HTML,请使用
attr()
removeAttr()
是的,谢谢。只要系统允许,我会尽快接受。
if(previousHighlightedCheckbox!=null) {
    console.log(sent.id, previousHighlightedCheckbox); // current checkbox and previous check box values are different.
    document.getElementById(previousHighlightedCheckbox).checked = false; // still this does not uncheck previous one
  }