Information Technology Reference
In-Depth Information
textfs[i].labels[0].nextSibling.value =
textfs[i].textLength;
}
}
Der Vorteil der Schleife ist, dass wir nun beliebig viele textarea -Elemente
hinzufügen können, und sofern sie ein meter -Element besitzen, werden die-
se automatisch aktualisiert. Um das zu erreichen, müssen wir zu einem Trick
aus der DOM-Kiste greifen: Die in dem oben stehenden Listing fett gedruckte
Zuweisung greift auf die DOM-Funktion nextSibling zu, einen Verweis auf das
folgende Element. Führen wir uns zum besseren Verständnis noch einmal den
HTML-Code für das Textfeld und den Status-Balken vor Augen. Das textarea -
Element ist von einem label -Element eingeschlossen, auf das das gesuchte
meter -Element folgt. Um vom textarea -Element auf das meter -Element zu
kommen, verwenden wir die labels -Eigenschaft des Textfeldes. Dabei handelt
es sich um ein NodeList -Array, von dem uns das erste Element (also das mit
dem Index 0 ) interessiert, weil das darauffolgende Element (der nextSibling )
das meter -Element ist.
Bei genauerer Betrachtung ist die Vorgehensweise also gar nicht so kompli-
ziert, sie birgt aber ihre Tücken. Sollte sich zwischen dem abgeschlossenen
label -Element und dem meter -Element ein Leerzeichen oder ein Zeilenum-
bruch verirren, dann funktioniert unsere Status-Anzeige nicht mehr. Der next-
Sibling ist dann nämlich ein Text-Element, und in der for -Schleife erreichen
wir das meter -Element nicht mehr.
Als Nächstes wollen wir uns um die Fortschrittsanzeige am Ende des Formu-
lars kümmern. Leicht zu erraten war, dass es sich dabei um ein progress -Ele-
ment handelt, spannender wird, wie sich das Aktualisieren dieses Elements in
JavaScript elegant ausdrücken lässt. Zuerst sehen Sie hier den HTML-Code für
das Element:
<label>Fortschritt:
<progress id=formProgress value=0
tabindex=-1></progress></label>
Das progress -Element bekommt eine id , einen Anfangswert von 0 ( value ) und
einen negativen tabindex zugewiesen, was dazu führt, dass das Element nie
mit der Tabulator-Taste angesprungen wird. Um alles Weitere kümmert sich
die JavaScript-Funktion updateProgress() .
Search WWH ::




Custom Search