Hi
Der Code sieht folgendermassen aus:
var TR = document.getElementById("artikel").insertRow (rows);
var TD2 = document.createElement ("td"); var TD2widget = document.createElement ("select"); TD2.align = "center"; TD2widget.name = "menge" + index; TD2widget.size = "1"; TD2widget.width = "250"; TD2widget.onchange = "quantityChanged(this)" initQuantity (TD2widget); TD2.appendChild(TD2widget);
TR.appendChild(TD2);
Es wird also zuerst eine neue Zeile in einer Tabelle erzeugt und dann ein <td>-Element, das eine Auswahlliste (<select>) enthält. Und so, wie ich für TD2widget die Attribute name, size und width setze, möchte ich das auch für den onchange-EventHandler tun. Aber so wie oben funktioniert's leider nicht.
Irgendeine Idee?
Kaum. Ich hatte mich mal mit dHTML beschaeftigt, als es mit Netscape4 und IE 4 aufgekommen ist. Damals muesste man fuer jede neue Browserversion eine neue Implementierung machen und daraus hab ich die Konsequenz gezogen, es sein zu lassen. Für welchen Browser ist Dein Code? Oder hat man sich mittlererweile tatsaechlich auf einen browser-uebergreifenden Standard geeinigt? Zum Problem: Ich nehme mal an, es funktioniert prinzipiell, also die Breite ist tatsaechlich 250 etc. Dann gehe ich auch mal davon aus, dass ein onchance-Attribut tatsaechlich existiert. Dann ist die Frage wohl die, was man dem zuweisen muss. Hast Du mal statt einem Funktionsaufruf etwas Code zugewiesen, der direkt eine Aktion bewirkt z.b. TD2widget.onchange = "alert( \"klappt\" )" Oder versuch mal eine Funktion selbst zuzuweisen und nicht den Aufruf einer Funktion. Das koennte etwa folgendermassen funktionieren: function changeDone( object ) { } TD2widget.onchange = changeDone; Und noch zwei Workarounds: 1. Erzeuge auf konventionelle Weise (HTML) eine Select-Box mit einem onchange-Attribut, nimm Dir diese (in der Idee eines Templates) und wandele sie so ab, dass sie fuer dich passend ist. Du koenntest vielleicht auch, indem Du ein solches Objekt untersuchst, herausfinden, was in einer korrekt funktionierenden Select-Box als onchange-Wert verwendet wird. In etwa var nmySelect = document.getElementById("meineSelectBox"); alert( nmySelect.onchange ); 2. Erzeuge es "halbdynamisch", indem Du den HTML-Code per Javascript ausgibst. (document.writeln(...)). Das ist aber alles geraten. Wahrscheinlich gibt es eine ganz simple Loesung, wenn man weiss, welche (-; Laut SELFHTML8.0 fuer das DOM-Modell: document.getElementsByName("Eingabe")[0].addEventListener("click", handleEingabefeldClick, true); Bye -- 1 Bodo Kaelberer 123 http://www.webkind.de/ 3 4 "A button I have made must be pushed." (ip)