Ich habe gestern ein Formular programmiert, welches sich basierend auf den Eingaben dynamisch aufbaut. Dafür habe ich in einem JavaScript die Formularfelder (Select-Boxen) über die innerHTML-Eigenschaft gefüllt. Das funktionierte auch wunderbar im Firefox, wo ich das programmiert hatte. Ich dachte, ich wäre fertig, und habe das dann noch einmal im Internet-Explorer getestet. Dort da der Schock: da läuft das nicht.
Offensichtlich handelt es sich dabei um einen Bug des Internet Explorers bei der Verarbeitung von <select> und <option>. Der Bug ist aber eigentlich ein uralter Hut, wie ein Blick in einen entsprechenden Support-Artikel auf microsoft.com beweist. Umso interessanter, dass ich den immer noch habe.
Die Lösung ist aber einfach. Statt das innerHTML auf das Select-Feld anzuwenden, muss man noch einen Div-Container darumlegen und das Select-Element jeweils komplett da reinschreiben:
Code:
var newcode = '<select name="test">
<option value="1">1</option>
<option value="2">2</option>
</select>';
document.getElementById("divcontainer").innerHTML = newcode;
Keine Kommentare:
Kommentar veröffentlichen