Hallo,
bei innerHTML sind die name-Attribute auch nicht drin. Wie kann das angehen? Wie soll man denn da dynamisch was machen?
OK, vielleicht muss ich einen anderen Ansatz wählen... Wie macht man das denn sonst so, ein dynamisch generiertes Formular?Am Besten serverseitig.
Server seitig ist leider keine Option. Könnte ich zwar, aber geht beim Kunden halt nicht. Vielleicht werde ich auf folgende supi IE Möglichkeit zurückgreifen: Alles in HTML, style=display:none und dann dynamisch ein- und ausblenden. Es muss ja kein schöner Code sien, es muss funktionieren :)
Ansonsten wirst du Formulare wohl oder übel mit innerHTML oder document.write() generieren müssen, wenn du den IE unterstützen musst :-(
Andere Elemente kannst du hingegen wie gewohnt per appendChild, createElement,… erstellen.Übrigens machst du's dir mit createAttribute etc. eigentlich unnötig schwer. Name-Attribute könntest du z.B. auch einfach so setzen:
Naja, meine Funktion ist ziemlich flexibel, das geht nämlich so:
createElement("tagname, zb 'div'", "into (für 'in ein Element'), "before" oder "after", target (einen String für ein Element mit der ID 'target', "id::foo#name::bar", "textNode");
Der vorletzte Parameter ist entscheidend, man kann unendlich viele Attribute gleich anhängen, z.B. "href::http://www.google.com/#target::_blank", das macht es echt sehr angenehm. Vielleicht nicht sooo elegant, weils ne eigene Syntax benötigt, aber angenehm und sehr schnell. Aber es muss doch noch bessere Möglichkeiten geben! Ich versuche mal, Attribute, die 'name' heißen, herauszufiltern und nachträglich mit element.name ranzuhängen.
Element.name = "Name_des_Elements";
Diese Schreibweise funzt im IE natürlich auch nicht besser, aber andere Attribute könntest du auf diese Weise setzen. Beachte aber die teilweise abweichenden Schreibweisen (z.B. 'className' statt 'class').
mfg. Daniel
Vielen Dank,
wiberg