Ist das in HTML5 korrekt?
Ja.
Ich verstehe mehr Etiketten an einem Eingabefeld verweisen können, aber ein Etikett kann nur Punkt auf einem Feld
Ja, wieder.
Aus den Angaben hier: https://www.w3.org/TR/html5/forms.html#the-label-element
Die Beschriftung kann mit einem bestimmten Form-Steuerelement zugeordnet werden, bekannt als das markierte Kontrolletikett Elemente, entweder unter Verwendung des für das Attribut, oder über das Formular-Steuerelement in Putten das Label-Element selbst.
Wenn kein Attribut for
ist und das mit seiner label
markierbare Steuer verschachtelt ist, dann ist der erste derartige Nachkomme wird seine markierbare Kontrolle. Aber ein label
sollte nicht verschachtelt werden mit anderen label
s. Die label.control
-Eigenschaft gibt das Formularsteuerelement zurück, das diesem Element zugeordnet ist. Umgekehrt ist .labels
eine schreibgeschützte Eigenschaft auf beschreibbaren Steuerelementen, die eine nodelist
aller anwendbaren Beschriftungen auf diesem Steuerelement zurückgeben.
Beispiel 1:
In dem folgenden Beispiel wird die Eigenschaft gibt einen input.labels
nodeList
die sowohl die Etiketten enthält.
var inp = document.getElementById('myInput');
console.log(inp.labels);
<label for="myInput">This is an external label</label>
<br>
<label>
This label is wrapped around
<input type="text" id="myInput">
</label>
Beispiel 2:
In diesem Beispiel habe ich gezielt ein Etikett mit zwei Eingängen verbunden. Beachten Sie, dass nur das erste Attribut, d. H. Das Attribut for
, verknüpft wird, und dass das zweite ignoriert wird, obwohl es ein verschachteltes Steuerelement enthält.
var myInput = document.getElementById('myInput'),
yourInput = document.getElementById('yourInput')
;
console.log(myInput.labels);
console.log(yourInput.labels);
<label for="myInput">
\t This is an external label
\t <input id="yourInput">
</label>
<br>
<input type="text" id="myInput">