web-dev-qa-db-ja.com

入力テキスト要素の正しい読み取り専用属性構文は何ですか?

ほとんどの場合、text inputreadonly属性に精通していますが、他のWebサイト(私の厄介な習慣)からコードを読んでいるときに、この属性の実装が複数見られました。

<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" >

..そして、私はもっと見たと思うが、正確な構文を今思い出すことはできない。

それで、私が使用すべき正しいものはどれですか?

61
Obmerk Kronen

w から:

readonly= "readonly"または ""(空の文字列)またはempty-要素が値を編集することを意図していないコントロールを表すことを指定します。

したがって、基本的には同じです。

68
Vucko

HTML5仕様

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

読み取り専用属性はブール属性です

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

要素のブール属性の存在は真の値を表し、属性の不在は偽の値を表します。

属性が存在する場合、その値は空の文字列か、属性の正規名と大文字小文字を区別しないASCIIで、先頭または末尾に空白がない値でなければなりません。

結論

以下は、有効、同等、およびtrueです。

<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
<input type="text" readonly="ReAdOnLy" />

以下はinvalidです。

<input type="text" readonly="0" />
<input type="text" readonly="1" />
<input type="text" readonly="false" />
<input type="text" readonly="true" />

falseの唯一の有効な構文は、属性がないことです。

<input type="text"/>

推奨事項

有効なXHTMLの作成を気にする場合は、readonly="readonly"が無効であり、他の選択肢は読みにくいため、<input readonly>を使用します。それ以外の場合は、<input readonly>を短くしてください。

あるべきです

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