Rolf B: JS - Variablen in HTML mehrfach belegen, mit einer Funktion auswerten

Beitrag lesen

Hallo Ammeres,

Variablengebrauch 101:

  • Benenne deine Identifikationen so, dass sie Dich nicht verwirren. ADP und APD ist gruselig, da guckt man fünfmal drauf und verwechselt es immer noch
  • Das gilt für JS-Variablen genauso wie für id und name Attribute.

DOM Methoden 101:

  • id und name sind nicht das selbe
  • getElementById("foo") findet demnach nichts mit name="foo"

Wenn Du ein Element mit einem bestimmten name-Attribut finden willst, musst Du document.getElementsByName verwenden - beachte den Plural. Eine id muss eindeutig im Dokument sein, ein name nicht, deswegen ist getElementsByName auf die Rückgabe einer NodeList ausgelegt und getElementById auf die Rückgabe eines einzelnen Elements.

Gunnar weist auch gerne auf den alternativen Zugriff über die document.forms Auflistung hin, da findest Du dein Form als document.forms.FZE. Von da aus kommst Du auch an die Form-Elemente heran - ich vermeide das aber grundsätzlich, weil man im Script nicht weiß, ob document.forms.FZE.ADP ein einzelnes Element oder eine Elementliste liefert. Das hängt davon ab, ob im HTML ein oder mehrere Elemente mit einem solchen Namen stehen; ich habe also auf einmal eine Strukturabhängigkeit zwischen Script und HTML. Sowas ist schlechte Architektur, und darum verwende ich lieber eine Methode, bei der der Ergebnistyp wohldefiniert ist.

Wenn Du Alternativen zu getElementsByName suchst, wären die Methoden querySelector und querySelectorAll vorzuziehne, mit denen Du ausgehend vom Dokument ODER von einem Element einen CSS Selektor verwenden kannst, um ein bestimmtes Element oder eine Liste von passenden Elementen zu finden.

Rolf

--
sumpsi - posui - obstruxi