我们都知道如何在HTML中形成复选框输入:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

我不知道的是,选中复选框的技术正确值是多少?这些方法我都见过:

选中<输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框”选中> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“开”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“是”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“选中”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“true”>

答案是不重要吗?从说明书本身来看,我没有看到任何证据证明这个答案是正确的:

复选框(和单选按钮)是可以切换的开/关开关 由用户决定。当控制元件被检查时,开关是“打开”的 属性已设置。当提交表单时,只有“on”复选框 控制可以成功。一个表单中的几个复选框可以共享 相同的控件名。因此,例如,复选框允许用户 为相同的属性选择几个值。使用INPUT元素 创建复选框控件。

说明书作者会说什么是正确答案?请提供基于证据的答案。


当前回答

让checked为false的唯一方法是省略任何值,这很疯狂。在Angular 1中。X,你可以这样做:

  <input type="radio" ng-checked="false">

如果你想让它不受控制的话,那就理智多了。

其他回答

HTML5规范:

http://www.w3.org/TR/html5/forms.html attr-input-checked:

禁用的内容属性是一个布尔属性。

http://www.w3.org/TR/html5/infrastructure.html boolean-attributes:

元素上存在布尔属性表示真值,不存在该属性表示假值。 如果属性存在,它的值必须是空字符串,或者与属性的规范名称匹配的ASCII不区分大小写的值,没有前导或尾随空格。

结论:

以下是有效的、等效的和真实的:

<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="ChEcKeD" />

以下参数无效:

<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />

该属性的缺失是false的唯一有效语法:

<input />

建议

如果您关心编写有效的XHTML,则使用checked="checked",因为<input checked>是无效的XHTML(但有效的HTML),而其他替代方案可读性较差。否则,只需使用<input checked>,因为它更短。

<input ... checked />
<input ... checked="checked" />

它们是同样有效的。在JavaScript中:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");

我认为你想要的是: 检查= '检查'

检查 检查= " " 检查= "检查" 是等价的;


根据规格复选框 '---- checked = "checked"或""(空字符串)或空 指定元素表示所选控件。——'

好吧,使用它我不认为重要(类似于disabled和readonly),我个人使用checked="checked",但如果你试图用JavaScript操纵它们,你使用true/false