我知道的readonly
的属性text input
,但是在读从其他网站的代码(我的坏习惯),我看到不止一个实现它:
<input type="text" value="myvalue" class="class anotherclass" readonly >
和
<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" >
我也见过
<input type="text" value="myvalue" class="class anotherclass" readonly="true" >
..和我相信我看到的更多,但是现在不能记得确切的语法..
那么,哪一个是我应该使用正确的?
从W3 :
只读 =“只读”或“”(空字符串)或空 -指定元素代表其值并不意味着被编辑的控制。
因此基本上是相同的。
HTML5规范 :
http://www.w3.org/TR/html5/forms.html#attr-input-readonly :
只读属性是一个布尔属性
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
一个元件上的布尔属性的存在表示真实值,并且不存在属性的表示假值。
如果存在该属性,其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写的匹配,没有前导或尾随空白的值。
结论 :
以下是有效的,等价和真实 :
<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
<input type="text" readonly="ReAdOnLy" />
以下是无效的 :
<input type="text" readonly="0" />
<input type="text" readonly="1" />
<input type="text" readonly="false" />
<input type="text" readonly="true" />
缺少的属性是假的唯一有效的语法:
<input type="text"/>
建议
如果你关心编写有效的XHTML,使用readonly="readonly"
,因为<input readonly>
是无效的和其他替代品的可读性。 别的,只是使用<input readonly>
,因为它是更短。
是应
<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />