Antje Hofmann: Fehlermeldung beim Füllen eines Auswahlmenüs

Beitrag lesen

Hallo André,

Problem, ich kann nur einmal in dem Auswahlmenü (mat_id) Material auswahlen. Bei zweiten mal bekomme ich eine Fehlermeldung. Die lautet im IE, daß liste[] kein Objekt ist und im NN bekomme ich gar keine Fehlermeldung aber das Auswahlmenü wird mit 3x "undefined" gefüllt.

:-) du bist ganz böse über den Fehler lokale - globale Variable gestolpert

var werte = new Array();

das ist eine globale Variable

function fuellen()
    liste = werte[mat_id];

hier füllst du deine Hilfsvariable mit Inhalten der globalen Variable

werte = liste[i].split(";"); // <<-- FEHLERMELDUNG

hier überschreibst du die globale Variable

Im ersten Durchlauf ist noch alles ok, im zweiten Durchlauf existiert aber dein Index nicht mehr und das verursacht die Fehlermeldung

Abhilfe: mache deine lokale Variable werte in deiner Funktion tatsächlich zu einer lokalen Variablen, also

var werte = liste[i].split(";");

oder nimm eine andere Bezeichnung. Deshalb hilft auch hein seine Lösung. Durch die Verschiebung der Definition des Arrays Werte in die Funktion wird dieses bei jedem Funktionaufruf neu initialisiert, da wirkt sich das Überschreiben nicht mehr aus.

Viele Grüße

Antje