Das Element hat sowohl ein Attribut und eine Eigenschaft namens checked
. Die Eigenschaft bestimmt den aktuellen Status.
Das Attribut ist eine Zeichenfolge, und das Eigentum ist ein boolean. Wenn das Element aus dem HTML-Code erstellt wird, wird das Attribut aus dem Markup festgelegt, und die Eigenschaft wird abhängig vom Wert des Attributs festgelegt.
Wenn kein Wert für das Attribut im Markup ist, wird das Attribut null
, aber die Eigenschaft ist immer entweder true
oder false
, so wird es false
.
Wenn Sie die Eigenschaft festlegen, sollten Sie einen boolean Wert verwenden:
document.getElementById('myRadio').checked = true;
Wenn Sie das Attribut festzulegen, verwenden Sie eine Zeichenfolge:
document.getElementById('myRadio').setAttribute('checked', 'checked');
Beachten Sie, dass das Attribut auch Einstellung ändert sich die Eigenschaft, aber das Festlegen der Eigenschaft ändert das Attribut nicht.
Beachten Sie auch, dass, was auch immer Wert das Attribut gesetzt, wird die Eigenschaft true
. Auch wenn Sie eine leere Zeichenfolge oder null
verwenden, bedeutet das Festlegen des Attributs, dass es aktiviert ist. Verwenden Sie removeAttribute
das Element mit dem Attribut zu deaktivieren:
document.getElementById('myRadio').removeAttribute('checked');
Nr In HTML 4 und früher es * hat * Wert erfordern ... es war der Name, optional war. "checked =" checked "' ist die Vollversion, aber Sie können 'checked =" 'und' "off" lassen und den Wert einfach zurücklassen. (SGML kann * komisch *! Bekommen) – Quentin
Das heißt, die Frage zu fragen über die DOM-Eigenschaft, nicht die HTML-Regeln. – Quentin
@Quentin - Fair genug, obwohl das fast ein Argument für die Semantik ist. – Oded