173 votes

Quelle est la valeur correcte de l'attribut "disabled" ?

Quelle est la valeur correcte pour le disabled pour une zone de texte ou une zone de texte ?

J'ai déjà vu la formule suivante utilisée auparavant :

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

0 votes

Le lien que j'ai posté en commentaire de la réponse de js1568 confirme/clarifie ce que @Marc B dit : whatwg.org/specs/web-apps/current-work/multipage/

0 votes

Duplication possible de stackoverflow.com/questions/1033944/ parce que les deux sont des attributs booléens (non marqués).

152voto

ErickPetru Points 5964
  • Pour XHTML, <input type="text" disabled="disabled" /> est le balisage valide.
  • Pour le HTML5, <input type="text" disabled /> est valide et utilisé par le W3C sur ses échantillons.
  • En fait, les deux méthodes fonctionnent sur tous les principaux navigateurs.

16 votes

En html5, l'entrée est un élément vide et n'a pas besoin d'une barre oblique de fermeture : w3.org/TR/html5/syntaxe.html#void-elements y w3.org/TR/html5/syntaxe.html#syntaxe-début-tag

1 votes

@Daniel K. Il n'en a pas besoin, à moins de faire du balisage HTML/XML polyglotte.

113voto

Ciro Santilli Points 3341

Spécifications HTML5 :

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

L'attribut checked content est un attribut booléen.

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

La présence d'un attribut booléen sur un élément représente la valeur vraie, et l'absence de l'attribut représente la valeur fausse.

Si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur qui correspond au nom canonique de l'attribut sans tenir compte de la casse, sans espace avant ou après.

Conclusion :

Il s'agit de valides, équivalents et vrais :

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

Il s'agit de invalide :

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

L'absence de l'attribut est la seule syntaxe valide pour l'option faux :

<input type="text" />

Recommandation

Si vous vous souciez d'écrire du XHTML valide, utilisez disabled="disabled" puisque <input disabled> n'est pas valide et les autres alternatives sont moins lisibles. Sinon, il suffit d'utiliser <input disabled> car il est plus court.

4 votes

Remarque : Si vous utilisez AngularJS et que vous devez lier l'état d'invalidité à une variable, vous pouvez utiliser la fonction ng-disabled à la place. Comme pour les autres attributs de ce type, ils sont généralement intelligents. ng-* contrepartie

5 votes

disabled={true} fonctionne dans le code JSX de reactJs mais je suis sûr qu'il serait transposé dans l'un des formats HTML5 valides/autorisés uniquement.

9voto

js1568 Points 4323

<input type="text" disabled="disabled" /> est correct pour le XHTML. HTML5 a plusieurs façons différentes de le faire.

2voto

Edmond ME Points 21

Je viens d'essayer tout cela, et pour IE11, la seule chose qui semble fonctionner est disabled="true". Les valeurs de disabled ou aucune valeur donnée ne fonctionnent pas. En fait, le jsp a reçu une erreur indiquant qu'une valeur égale est requise pour tous les champs, et j'ai donc dû spécifier disabled="true" pour que cela fonctionne.

1voto

MadsHaupt Points 9

En HTML5, il n'y a pas de valeur correcte, tous les principaux navigateurs ne se soucient pas vraiment de la nature de l'attribut, ils vérifient simplement si l'attribut existe afin que l'élément soit désactivé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X