/ / Was ist der richtige Wert für ein markiertes Attribut eines HTML-Kontrollkästchens? - HTML, Formulare, Kontrollkästchen, HTML-Eingabe

Was ist der richtige Wert für ein geprüftes Attribut eines HTML-Kontrollkästchens? - HTML, Formulare, Checkbox, HTML-Eingabe

Wir alle wissen, wie man eine Checkbox-Eingabe in HTML bildet:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

Was ich nicht weiß - was ist der technisch korrekte Wert für ein aktiviertes Kontrollkästchen? Ich habe gesehen, dass diese alle funktionieren:

<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">

Ist die Antwort, dass es nicht wichtig ist? Ich sehe keine Beweise für die Antwort als richtig markiert Hier von dem Spez selbst:

Kontrollkästchen (und Optionsfelder) sind ein- / ausgeschaltetSchalter, die umgeschaltet werden können vom Benutzer. Ein Schalter ist eingeschaltet, wenn das Steuerelement überprüft wird Attribut ist gesetzt. Wenn ein Formular gesendet wird, nur das Kontrollkästchen "Ein" Kontrollen können erfolgreich werden. Mehrere Kontrollkästchen in einem Formular können gemeinsam genutzt werden der gleiche Kontrollname. So können Benutzer beispielsweise Kontrollkästchen aktivieren Wählen Sie mehrere Werte für dieselbe Eigenschaft aus. Das INPUT-Element wird verwendet um ein Kontrollkästchen-Steuerelement zu erstellen.

Was würde ein Spezifikationsschreiber sagen, ist die richtige Antwort? Bitte geben Sie evidenzbasierte Antworten.

Antworten:

413 für Antwort № 1

Genau genommen sollten Sie etwas setzen, das Sinn macht - gemäß der Spezifikation HierDie korrekteste Version ist:

<input name=name id=id type=checkbox checked=checked>

Für HTML können Sie auch die verwenden leere Attributsyntax, checked=""oder auch einfach checked (Für strengeres XHTML ist dies nicht unterstützt).

Tatsächlich unterstützen die meisten Browser jedoch nahezu jeden Wert zwischen den Anführungszeichen. Alle folgenden Punkte werden überprüft:

<input name=name id=id type=checkbox checked>
<input name=name id=id type=checkbox checked="">
<input name=name id=id type=checkbox checked="yes">
<input name=name id=id type=checkbox checked="blue">
<input name=name id=id type=checkbox checked="false">

Und nur Folgendes wird deaktiviert:

<input name=name id=id type=checkbox>

Siehe auch diese ähnliche Frage auf disabled="disabled".


41 für die Antwort № 2

HTML5-Spezifikation:

http://www.w3.org/TR/html5/forms.html#attr-input-checked :

Das deaktivierte Inhaltsattribut ist ein boolesches Attribut.

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

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 eine leere Zeichenfolge oder ein Wert sein, bei dem die Groß- und Kleinschreibung des ASCII-Zeichens für den kanonischen Namen des Attributs nicht beachtet wird, ohne führende oder nachfolgende Leerzeichen.

Fazit:

Die Folgenden sind gültig, gleichwertig und wahr:

<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="ChEcKeD" />

Die Folgenden sind ungültig:

<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />

Das Fehlen des Attributs ist die einzig gültige Syntax für falsch:

<input />

Empfehlung

Wenn Sie gültiges XHTML schreiben möchten, verwenden Sie checked="checked", schon seit <input checked> ist ungültiges XHTML (aber gültiges HTML) und andere Alternativen sind weniger lesbar. Sonst einfach benutzen <input checked> da es kürzer ist.


34 für die Antwort № 3
<input ... checked />
<input ... checked="checked" />

Diese sind gleichermaßen gültig. Und in JavaScript:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");

7 für die Antwort № 4

du willst das ich denke: checked="checked"


5 für die Antwort № 5
  1. überprüft
  2. geprüft = ""
  3. geprüft = "geprüft"

    sind gleichwertig;


nach spez Kontrollkästchen "---- ⓘ Checked =" Checked "oder" "(leere Zeichenfolge) oder leer Gibt an, dass das Element ein ausgewähltes Steuerelement darstellt .--- "


2 für die Antwort № 6

Es ist eine ziemlich verrückte Stadt, dass die einzige Möglichkeit, die Prüfung falsch zu machen, darin besteht, Werte wegzulassen. Mit Angular 1.x können Sie Folgendes tun:

  <input type="radio" ng-checked="false">

Das ist viel vernünftiger, wenn Sie es deaktivieren müssen.


-2 für die Antwort № 7

Nun, um es zu benutzen, denke ich nicht, dass es wichtig ist (ähnlich wie deaktiviert und schreibgeschützt), persönlich verwende ich checked = "Checked", aber wenn Sie versuchen, sie mit JavaScript zu manipulieren, verwenden Sie true / false