Les attributs doivent avoir une valeur, même pour les attributs dont la simple présence signale que quelque chose doit être fait. disabled="false"désactiverait toujours l'élément, car c'est la PRESENCE de disabledqui déclenche la désactivation, pas la valeur de l'attribut.
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 à une correspondance ASCII insensible à la casse pour le nom canonique de l'attribut, sans espace de début ou de fin.
Conclusion :
Les éléments suivants sont valides, équivalents et vrais :
L'absence de l'attribut est la seule syntaxe valide pour false :
<inputtype="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, utilisez simplement <input disabled>car il est plus court.
Remarque: Si vous utilisez AngularJS et devez lier l'état désactivé à une variable, vous pouvez utiliser à la ng-disabledplace. Semblable à d'autres attributs comme celui-ci, ils ont généralement une ng-*contrepartie intelligente
jakub.g
5
disabled={true}fonctionne dans le code JSX reactJs mais je suis sûr qu'il serait transpilé dans l'un des formats HTML5 valides / autorisés uniquement.
RBT
1
J'ai juste essayé tout cela, et pour IE11, la seule chose qui semble fonctionner est disabled = "true". Les valeurs de désactivé ou aucune valeur donnée ne fonctionnaient pas. En fait, le jsp a obtenu une erreur qui est requise pour tous les champs, j'ai donc dû spécifier disabled = "true" pour que cela fonctionne.
La question d'OP portait sur le HTML (c'est-à-dire les contrôles côté client). Vous regardez les contrôles côté serveur; ceux-ci ont des conventions différentes. Vous remarquerez la différence si vous inspectez la sortie HTML de votre JSP. Si vous avez encore des doutes, essayez ce violon dans IE11.
Ruud Helderman
J'ai vu la même chose du côté client sur IE 11. IE 11 force quelque chose à exister, il suffit donc de définir des résultats désactivés dans disabled = ""
Robert Achmann
1
En HTML5, il n'y a pas de valeur correcte, tous les principaux navigateurs ne se soucient pas vraiment de ce qu'est l'attribut, ils vérifient simplement si l'attribut existe donc l'élément est désactivé.
disabled="false"
désactiverait toujours l'élément, car c'est la PRESENCE dedisabled
qui déclenche la désactivation, pas la valeur de l'attribut.Réponses:
<input type="text" disabled="disabled" />
est le balisage valide.<input type="text" disabled />
est valide et utilisé par le W3C sur leurs échantillons.la source
Spécification HTML5 :
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 :
Conclusion :
Les éléments suivants sont valides, équivalents et vrais :
Les éléments suivants ne sont pas valides :
L'absence de l'attribut est la seule syntaxe valide pour false :
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, utilisez simplement<input disabled>
car il est plus court.la source
ng-disabled
place. Semblable à d'autres attributs comme celui-ci, ils ont généralement uneng-*
contrepartie intelligentedisabled={true}
fonctionne dans le code JSX reactJs mais je suis sûr qu'il serait transpilé dans l'un des formats HTML5 valides / autorisés uniquement.J'ai juste essayé tout cela, et pour IE11, la seule chose qui semble fonctionner est disabled = "true". Les valeurs de désactivé ou aucune valeur donnée ne fonctionnaient pas. En fait, le jsp a obtenu une erreur qui est requise pour tous les champs, j'ai donc dû spécifier disabled = "true" pour que cela fonctionne.
la source
En HTML5, il n'y a pas de valeur correcte, tous les principaux navigateurs ne se soucient pas vraiment de ce qu'est l'attribut, ils vérifient simplement si l'attribut existe donc l'élément est désactivé.
la source