什么是输入文本元素的正确只读属性语法?(What is the correct readonly a

2019-08-31 14:13发布

我知道的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" >

..和我相信我看到的更多,但是现在不能记得确切的语法..

那么,哪一个是我应该使用正确的?

Answer 1:

从W3 :

只读 =“只读”“”(空字符串) -指定元素代表其值并不意味着被编辑的控制。

因此基本上是相同的。



Answer 2:

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> ,因为它是更短。



Answer 3:

是应

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />


文章来源: What is the correct readonly attribute syntax for input text elements?