Axel Richter: onChange funzt nicht

Beitrag lesen

Hallo,

So jetzt ein paar Codeschnipsel:
das ist das einzige was an der Funktion die bei onChange aufgerufen wird irgendwas löscht.

var anzahl_zuloeschen = document.getElementById('kontinent').length-1;

Das Element mit der ID "kontinent" ist ein SELECT-Element?
Wenn ja, dann ist hiernach anzahl_zuloeschen gleich der Länge der options-Collection dieses SELECT-Elements minus 1.

Nehmen wir an, das SELECT hätte 5 OPTIONS, dann ist anzahl_zuloeschen = 4.

for(i=0; i<=anzahl_zuloeschen; i++)
  {  var geloescht =
     document.getElementById('kontinent').
     removeChild(document.getElementById('kontinent').lastChild);
  }

Hiermit wird nun 5 Mal (für i von 0 bis 4) das lastChild des SELECT-Elements gelöscht. Je nach Browser sind das _nicht_ jedesmal OPTION-Elemente. Im IE und FF ist die SELECTION hiernach _nicht_ leer, wenn der HTML-Code so aussieht:
<select name="kontinent" size="4" id="kontinent">
<option value="EU">Europa</option>
<option value="AF">Afrika</option>
<option value="AS">Asien</option>
<option value="AU">Australien</option>
<option value="AM">Amerika</option>
</select>

Einige .lastChilds sind hier nämlich white-spaces (Zeilenumbrüche).

Nutze besser statt .lastChild die options-Collection direkt, wie in http://de.selfhtml.org/javascript/objekte/options.htm#elemente_loeschen beschrieben.

Zu Deiner eigentlichen Frage: siehe Felix. Ich will Dir nur zeigen, dass Du mit diesem Code noch mehr Probleme bekommen wirst.

viele Grüße

Axel