什么是input文本元素的正确的只读属性语法?
我知道text input
的readonly
属性,但是当从其他网站读取代码(我的一个讨厌的习惯)时,我看到了不止一个实现:
<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 :
readonly = “只读”或“”(空string)或空 – 指定该元素表示一个控件,其值不会被编辑。
所以基本上是一样的。
HTML5规范 :
http://www.w3.org/TR/html5/forms.html#attr-input-readonly :
readonly属性是一个布尔属性
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
元素上布尔属性的存在表示真值,缺less属性表示假值。
如果该属性存在,则其值必须是空string,或者是该属性规范名称的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" />
缺less该属性是错误的唯一有效语法:
<input type="text"/>
build议
如果你关心写有效的XHTML,使用readonly="readonly"
,因为<input readonly>
是无效的,其他的select是不太可读的。 否则,只需使用<input readonly>
因为它更短。
应该是
<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />