488 Stimmen

Was ist der richtige Wert für das Attribut "checked" in einem HTML-Kontrollkästchen?

Wir alle wissen, wie man ein Kontrollkästchen in HTML einrichtet:

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

Was ich nicht weiß - was ist der technisch korrekte Wert für ein angekreuztes Kä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 keine Rolle spielt? Ich sehe keinen Beweis für die als richtig markierte Antwort ici von der spec selbst:

Kontrollkästchen (und Optionsfelder) sind Ein/Aus-Schalter, die umgeschaltet werden können vom Benutzer umgeschaltet werden können. Ein Schalter ist "an", wenn das Kontrollelement markiert ist Attribut gesetzt ist. Wenn ein Formular abgeschickt wird, werden nur "eingeschaltete" Kontrollkästchen Steuerelemente erfolgreich werden. Mehrere Kontrollkästchen in einem Formular können sich denselben Kontrollnamen haben. So ermöglichen Kontrollkästchen dem Benutzer zum Beispiel mehrere Werte für dieselbe Eigenschaft auszuwählen. Das INPUT-Element wird verwendet um ein Kontrollkästchen-Steuerelement zu erstellen.

Was würde ein Fachmann sagen, was die richtige Antwort ist? Bitte geben Sie beweiskräftige Antworten.

499voto

Hannele Punkte 8409

Streng genommen sollten Sie etwas schreiben, das Sinn macht - gemäß der Spezifikation ici ist die korrekteste Version:

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

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

Tatsächlich unterstützen die meisten Browser jedoch so gut wie jeden Wert zwischen den Anführungszeichen. Alle der folgenden Angaben werden geprü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 die folgenden Punkte werden nicht angekreuzt:

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

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

75voto

HTML5-Spezifikation :

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

Das Attribut disabled content ist ein boolesches Attribut.

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

Das Vorhandensein eines booleschen Attributs in einem Element steht für den wahren Wert, das Fehlen des Attributs für den falschen Wert.

Wenn das Attribut vorhanden ist, muss sein Wert entweder eine leere Zeichenkette oder ein Wert sein, der eine von der Groß- und Kleinschreibung unabhängige Übereinstimmung mit dem kanonischen Namen des Attributs ist, ohne führende oder nachfolgende Leerzeichen.

Schlussfolgerung :

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 Nichtvorhandensein des Attributs ist die einzig gültige Syntax für falsch :

<input />

Empfehlung

Wenn Sie valides XHTML schreiben wollen, verwenden Sie checked="checked" da <input checked> ist ungültiges XHTML (aber gültiges HTML) und andere Alternativen sind weniger gut lesbar. Andernfalls verwenden Sie einfach <input checked> da sie kürzer ist.

38voto

Niet the Dark Absol Punkte 310257
<input ... checked />
<input ... checked="checked" />

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

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

7voto

Johnny Craig Punkte 4944

Ich glaube, Sie wollen das hier: checked='checked'

6voto

wengeezhang Punkte 2639
  1. geprüft
  2. checked=""
  3. checked="checked"

    gleichwertig sind;


gemäß Spezifikation Ankreuzfeld ---- checked = "checked" oder "" (Leerstring) oder leer Gibt an, dass das Element ein ausgewähltes Steuerelement darstellt.---'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X