设置为checked = false的复选框不起作用

checkbox set to checked = false not working

本文关键字:复选框 不起作用 false checked 设置      更新时间:2023-09-26

我正在用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"或不包括检查的属性,如果它的假是最佳实践?无论哪种方式,我都想知道上面代码中发生了什么。

不要放checked="false"

对于有效的XHTML,您只能输入checked="checked",否则您将执行

<input type="checkbox" checked>

浏览器不关心什么值被分配给checked属性,只要它在复选框输入标签中看到checked,它就被标记为checked

$(document).ready(function () { $(e).prop("checked", false);}

//"e"指向按钮元素

如何取消选中在这种情况下,示例我的代码是:(见下文)

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
  }