Hi,
Da alle die Eingabefelder für alle Attribute und nicht nur für das Erste ausgelesen und ausgeführt werden müssen, wird mit einer 'while'-Schleife (die 'for'-Schleife ist mir persönlich unsympathisch) auf alle Felder zugegriffen.
Grundsaetzlich sind die gaengigen Schleifen-Konstrukte in den meisten Programmiersprachen in vielen Faellen austauschbar.
Allerdings verstehe ich deine "Unsympathie" gegen die for-Schleife nicht.
Wenn man eine Schleife ueber einen bestimmten nummerischen, fortlaufenden Wertebereich haben will, ist die for-Schleife i.a.R. das Mittel der Wahl, und die am besten verstaendliche Variante.
Dazu bracht man natürlich einen Counter. Und diesen Counter verwende ich auch gleich als Zahl zwischen den eckigen Klammern beim 'get'-ten übern 'TagName'. Das funktioniert beim ersten Mal, wo dies verwendet wird, ganz gut. Doch beim zweiten Mal gibt der Validator immer folgendes aus: ''document.getElementByTagName(...)[...].value' is null or not an object'.
Du setzt den Wert von counter schon nach dem ersten Zugriff per counter++ hoch.
Wenn du ihn danach noch mal zum Zugriff auf getElementsByTagName(...)[counter] benutzt, ist das natuerlich nicht mehr das gleiche Element, sondern schon das naechste.
Und nach diesem zweiten Zugriff machst du gleich noch mal counter++, setzt also den Zaehlerstand in einem Schleifendurchlauf gleich um 2 hoch.
Ueberleg dir, ob das wirklich das ist, was du willst.
Ich habe herumprobiert und herausgefunden, dass es geht, wenn nicht der gleiche Counter, wie in der Schleife benutzt wird. Doch ich will keinen eigenen Counter benutzen, denn es muss ja so auch gehen. Die Frage ist nur: Wie? Und diese Frage geb' ich an euch weiter, weil ich echt keine Ahnung habe.
Und ich hab keine Ahnung, was du hier meinst.
Wenn du einfach voellig unkommentierten Code hier ablaedst, kannst du nicht erwarten, dass jemand aus deiner nicht allzu logischen Beschreibung schlau wird.
Ach ja, noch was: Methoden wie document.getElementsByTagName liefern eine NodeList zurueck, die "live" eventuelle Aenderungen am Dokumentbaum widerspiegelt. Man sollte solche Methoden nicht staendig wieder aufrufen, das ist nicht sonderlich performant; besser ist es, sich einmal die Referenz auf die NodeList in einer Variablen abzulegen, und dann ueber diese zuzugreifen.
Und wenn es ganz speziell um Formularelemente geht, dann muss es nicht mal unbedingt getElementsByIrgendwas sein - dazu gibt es auch noch andere Moeglichkeiten.
MfG ChrisB
„This is the author's opinion, not necessarily that of Starbucks.“