我使用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">
]
我的印象是我应该设置checked="checked"
或者根本不包括已检查的属性,如果它的错误是最佳做法?无论哪种方式,我都想知道上述代码中发生了什么。
答案 0 :(得分:28)
不要放checked="false"
你只把checked =“checked”用于有效的XHTML,否则你会做
<input type="checkbox" checked>
浏览器不关心为checked属性分配了什么值,只要它在复选框输入标记中看到checked
,就会将其标记为已选中。
答案 1 :(得分:-1)
在这种情况下如何取消选中,我的代码示例为:(见下文)
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
}