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


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

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

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

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 для канонического имени атрибута, без начальных или конечных пробелов.

вывод:

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

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

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

<input type="text" />

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

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

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

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