Hallo,
var inhalt = document.createElement("input");
var str = array[y] + "_" + x;
inhalt.setAttribute("onblur", "init(this," + x +");");
Das wird auch nicht browserübergreifend funktionieren.
So geht das Registrieren von Event-Handlern:
Schema: element.onevent = funktionsreferenz;
Hier entweder:
inhalt.x = x; // Wert am Element speichern
inhalt.onblur = function () {
init(this, this.x); // Und hier wieder auslesen
};
Oder dasselbe wie in einem Code, eine Funktion erzeugen mit dem zusammengebauten Quellcode:
inhalt.onblur = new Function("init(this, " + x + ");");
Wichtig ist, dass es ein Funktionsobjekt und kein direkter String ist! Sonst geht es nicht im IE.
inhalt.parentNode.innerHTML = inhalt.parentNode.innerHTML;
Was bezweckt diese Zeile?
Wie gesagt ist die proprietäre createElement-Syntax für den IE nötig, wenn du willst, dass das name-Attribut in innerHTML auftaucht.
Durch dieses Überschreiben von innerHTML geht das zuvor gesetzte name-Attribut verloren.
Mathias