Каково правильное значение для атрибута disabled?

каково правильное значение disabled атрибут для текстового поля или textarea?

Я видел следующее, используемое раньше:

<input type="text" disabled />
<input type="text" disabled="disabled" />
<input type="text" disabled="true" />

4 ответов


  • для XHTML, <input type="text" disabled="disabled" /> - допустимая разметка.
  • В HTML5 <input type="text" disabled /> действителен и используется W3C на их образцах.
  • на самом деле, оба способа работает на всех основных браузерах.

HTML5 spec:

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute:

проверенный атрибут содержимого является логическим атрибутом

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

наличие логического атрибута на элементе представляет истинное значение, а отсутствие атрибут представляет значение false.

если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое не зависит от регистра ASCII для канонического имени атрибута, без начального или конечного пробелов.

вывод:

ниже действительный, эквивалентный и true:

<input type="text" disabled />
<input type="text" disabled="" />
<input type="text" disabled="disabled" />
<input type="text" disabled="DiSaBlEd" />

ниже недействительным:

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

в отсутствие атрибута является единственным допустимым синтаксисом для false:

<input type="text" />

рекомендация

если вы заботитесь о написании действительного XHTML, используйте disabled="disabled" С <input disabled> является недопустимым, а другие альтернативы менее читабельны. Остальное, просто используйте <input disabled> как он короче.


Я просто пробовал все это, и для IE11 единственное, что, похоже, работает, отключено= "true". Значения disabled или no value не работали. На самом деле, jsp получил ошибку, которая требуется для всех полей, поэтому мне пришлось указать disabled="true", чтобы это работало.


в HTML5 нет правильного значения, все основные браузеры на самом деле не заботятся о том, что такое атрибут, они просто проверяют, существует ли атрибут, поэтому элемент отключен.