dynamisch gesetztes onChange im IE funktioniert nicht
Nils2
- javascript
Hallo Zusammen,
hab ein kleines script welches mir in einem formular dynamisch <selects> anlegt. Das klappt alles soweit gut, bis auf den gesetzten eventhandler (onChange), den der IE nicht berückichtigt (mozilla jedoch wohl).
Der code sieht ungefähr so aus:
var newSelect = document.createElement("select");
newSelect.name = sNewName;
newSelect.onChange = sOnChange;
Alternativ habe ich es mit folgendem versucht:
newSelect.setAttribute("onChange", sOnChange, 0);
Hat aber auch nix gebracht. Der code scheint mir korrekt, das select wird korrekt angelegt und angezeigt usw. Die sOnChange variable ist korrekt gesetzt (klappt ja schließlich in mozilla) usw. Hat jemand eine idee wie man das im IE zum laufen bringen könnte?
Vielen dank vorab,
nils
Moin Nils,
Das klappt alles soweit gut, bis auf den gesetzten eventhandler (onChange), den der IE nicht berückichtigt (mozilla jedoch wohl).
das wundert mich allerdings *sehr*; auch vom Moz würde ich eher erwarten, dass er benutzerdefinierte Eigenschaften nicht eigentmächtig mit einer speziellen Bedeutung versieht.
var newSelect = document.createElement("select");
newSelect.name = sNewName;
newSelect.onChange = sOnChange;
Da drängen sich mir zwei Fragen auf: Welchen Typ und welchen Inhalt hat sOnChange? Und was bezweckst du mit der neuen Eigenschaft onChange im select-Objekt? Zumal der Name so heikel gewählt ist, dass man ihn beinahe mit dem Eventhandler onchange verwechseln könnte?
Alternativ habe ich es mit folgendem versucht:
newSelect.setAttribute("onChange", sOnChange, 0);
Mit setAttribute() hat der IE bekanntermaßen so seine Probleme, das setzt er oft nicht richtig um.
Hat jemand eine idee wie man das im IE zum laufen bringen könnte?
Falls du *wirklich* den Eventhandler onchange meinst, dann achte doch mal auf die korrekte Schreibweise. Javascript ist nämlich case-sensitive, wie viele andere andere Programmiersprachen auch.
Schönes Wochenende noch,
Martin
Lieber Nils2,
newSelect.onChange = sOnChange;
und wie ist das mit addEventListener bzw. attachEvent?
Ich hatte mir da einmal eine Funktion geschrieben, die beide Methoden berücksichtigt udn einen Eventhandler hinzufügt:
addEvent = function (oneEvent, obj, handler) {
if(document.body.addEventListener) obj.addEventListener(oneEvent, handler, false);
if(document.body.attachEvent) obj.attachEvent("on" + oneEvent, handler);
}
In Deinem Falle könnte man die Funktion so verwenden:
addEvent('change', newSelect, sOnChange);
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hab ein kleines script welches mir in einem formular dynamisch <selects> anlegt. Das klappt alles soweit gut, bis auf den gesetzten eventhandler (onChange), den der IE nicht berückichtigt (mozilla jedoch wohl).
Der code sieht ungefähr so aus:var newSelect = document.createElement("select");
newSelect.name = sNewName;
newSelect.onChange = sOnChange;
Der Event heißt nicht onChange, sondern onchange, JS ist case sensitive.
Struppi.