HTMLcheckbox的checked属性的值是多less?
我们都知道如何在HTML中形成一个checkboxinput:
<input name="checkbox_name" id="checkbox_id" type="checkbox">
我不知道 – 检查checkbox的技术上正确的值是多less? 我已经看到了这些工作:
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked> <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on"> <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes"> <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked"> <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">
答案不重要吗? 我看不出有什么证据可以从标准本身中标出正确的答案:
checkbox(和单选button)是可以由用户切换的开/关开关。 控制元素的checked属性设置时,开关处于“on”状态。 提交表单时,只有“打开”checkbox控件才能成功。 表单中的多个checkbox可能共享相同的控件名称。 因此,例如,checkbox允许用户为同一个属性select多个值。 INPUT元素用于创buildcheckbox控件。
规范作者会说什么是正确的答案? 请提供有据可依的答案。
严格地说,你应该把一些有意义的东西 – 根据这里的规范,最正确的版本是:
<input name=name id=id type=checkbox checked=checked>
对于HTML,您也可以使用空属性语法 checked=""
,甚至可以简单地checked
(对于更严格的XHTML,这是不支持的 )。
然而,实际上,大多数浏览器将支持引号之间的任何值。 以下全部将被检查:
<input name=name id=id type=checkbox checked> <input name=name id=id type=checkbox checked=""> <input name=name id=id type=checkbox checked="yes"> <input name=name id=id type=checkbox checked="blue"> <input name=name id=id type=checkbox checked="false">
只有以下几点才会被取消选中:
<input name=name id=id type=checkbox>
另请参阅关于disabled="disabled"
类似问题。
HTML5规范 :
http://www.w3.org/TR/html5/forms.html#attr-input-checked :
禁用的内容属性是布尔属性。
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
元素上布尔属性的存在表示真值,缺less属性表示假值。
如果该属性存在,则其值必须是空string,或者是该属性规范名称的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" />
缺less该属性是错误的唯一有效语法:
<input />
build议
如果你关心写有效的XHTML,使用checked="checked"
,因为<input checked>
是无效的XHTML(但是有效的HTML)和其他的select是不太可读的。 否则,只需使用<input checked>
因为它更短。
<input ... checked /> <input ... checked="checked" />
这些同样有效。 在JavaScript中:
input.checked = true; input.setAttribute("checked"); input.setAttribute("checked","checked");
你想这个我认为: checked='checked'
- 检查
- 检查=“”
-
检查=“选中”
是等同的;
根据规格checkbox '—-ⓘchecked =“checked”或“”(空string)或空指定该元素表示一个选定的控件.—“
这是一个非常疯狂的城镇,唯一的方法,使检查错误是省略任何价值观。 使用Angular 1.x,你可以这样做:
<input type="radio" ng-checked="false">
如果你需要不加限制的话,这会更加理智。
那么,使用它,我不认为重要的事情(类似于禁用和只读),我个人使用checked =“checked”,但如果你试图操纵它们与JavaScript,你使用true / false