Attribute müssen einen Wert haben, auch für die Attribute, deren bloße Anwesenheit signalisiert, dass etwas getan werden muss. disabled="false"würde das Element immer noch deaktivieren, da es die PRÄSENZ ist disabled, die die Deaktivierung auslöst, nicht der Wert des Attributs.
Das Vorhandensein eines booleschen Attributs für ein Element repräsentiert den wahren Wert, und das Fehlen des Attributs repräsentiert den falschen Wert.
Wenn das Attribut vorhanden ist, muss sein Wert entweder die leere Zeichenfolge oder ein Wert sein, bei dem der kanonische Name des Attributs nicht zwischen Groß- und Kleinschreibung unterschieden wird, ohne führende oder nachfolgende Leerzeichen.
Das Fehlen des Attributs ist die einzig gültige Syntax für false :
<inputtype="text"/>
Empfehlung
Wenn Sie gültiges XHTML schreiben möchten, verwenden Sie disabled="disabled", da <input disabled>es ungültig ist und andere Alternativen weniger lesbar sind. Andernfalls verwenden <input disabled>Sie es einfach, da es kürzer ist.
Hinweis: Wenn Sie AngularJS verwenden und den deaktivierten Status an eine Variable binden müssen, können Sie ng-disabledstattdessen verwenden. Ähnlich wie bei anderen Attributen wie diesen haben sie im Allgemeinen ein intelligentes ng-*Gegenstück
jakub.g
5
disabled={true}funktioniert in reagJs JSX-Code, aber ich bin sicher, dass er nur in eines der gültigen / erlaubten HTML5-Formate transpiliert wird.
RBT
1
Ich habe gerade all dies ausprobiert, und für IE11 scheint das einzige, was zu funktionieren scheint, deaktiviert = "wahr" zu sein. Werte für deaktiviert oder kein Wert angegeben hat nicht funktioniert. Tatsächlich hat der JSP einen Fehler erhalten, der für alle Felder gleich ist. Daher musste ich disabled = "true" angeben, damit dies funktioniert.
Die Frage von OP betraf HTML (dh clientseitige Steuerelemente). Sie betrachten serverseitige Steuerelemente. diese haben unterschiedliche Konventionen. Sie werden den Unterschied bemerken, wenn Sie die HTML-Ausgabe Ihrer JSP überprüfen. Wenn Sie immer noch Zweifel haben, versuchen Sie diese Geige in IE11.
Ruud Helderman
Ich habe das gleiche auf der Clientseite in IE 11 gesehen. IE 11 erzwingt die Existenz von etwas, so dass nur das Setzen von deaktivierten Ergebnissen in disabled = ""
Robert Achmann
1
In HTML5 gibt es keinen korrekten Wert. Allen gängigen Browsern ist es egal, was das Attribut ist. Sie prüfen lediglich, ob das Attribut vorhanden ist, sodass das Element deaktiviert ist.
disabled="false"
würde das Element immer noch deaktivieren, da es die PRÄSENZ istdisabled
, die die Deaktivierung auslöst, nicht der Wert des Attributs.Antworten:
<input type="text" disabled="disabled" />
ist das gültige Markup.<input type="text" disabled />
ist gültig und wird von W3C für ihre Beispiele verwendet.quelle
HTML5-Spezifikation :
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 :
Fazit :
Folgendes ist gültig, gleichwertig und wahr :
Folgendes ist ungültig :
Das Fehlen des Attributs ist die einzig gültige Syntax für false :
Empfehlung
Wenn Sie gültiges XHTML schreiben möchten, verwenden Sie
disabled="disabled"
, da<input disabled>
es ungültig ist und andere Alternativen weniger lesbar sind. Andernfalls verwenden<input disabled>
Sie es einfach, da es kürzer ist.quelle
ng-disabled
stattdessen verwenden. Ähnlich wie bei anderen Attributen wie diesen haben sie im Allgemeinen ein intelligentesng-*
Gegenstückdisabled={true}
funktioniert in reagJs JSX-Code, aber ich bin sicher, dass er nur in eines der gültigen / erlaubten HTML5-Formate transpiliert wird.Ich habe gerade all dies ausprobiert, und für IE11 scheint das einzige, was zu funktionieren scheint, deaktiviert = "wahr" zu sein. Werte für deaktiviert oder kein Wert angegeben hat nicht funktioniert. Tatsächlich hat der JSP einen Fehler erhalten, der für alle Felder gleich ist. Daher musste ich disabled = "true" angeben, damit dies funktioniert.
quelle
In HTML5 gibt es keinen korrekten Wert. Allen gängigen Browsern ist es egal, was das Attribut ist. Sie prüfen lediglich, ob das Attribut vorhanden ist, sodass das Element deaktiviert ist.
quelle