Liebe Forumsgemeinde,
ich versuche mich gerade an einem Workaround für den IE beim Benutzen von <button type="submit">
, wo der IE bekanntlich nicht nur das innerHTML anstatt des Inhalts des value-Attributes als Wert übermittelt, sondern bei mehreren vorhandenen Submit-Buttons dieser Art bei gleichem name-Wert nur das innerHTML des im Formular zuletzt notierten sendet.
Beispiel:
<button type="submit" name="aktion" value="anzeigen"><i>Anzeige</i></button>
<button type="submit" name="aktion" value="loeschen"><img src="delete.gif" alt="" />Löschung</button>
<button type="submit" name="aktion" value="abmelden"><strong>Logout</strong></button>
--> IE sendet _immer_ [aktion] => <strong>Logout</strong>
Für den Fall, dass kein Javascript verfügbar ist, habe ich bereits eine serverseitige Ersetzung, die aus den <button>-Elementen <input>-Elemente macht. Das Unschöne daran ist, dass die Werte in den value-Attributen zwar "sprechende" Werte sind, diese aber immernoch relativ technisch (z.B. "user_aendern") anmuten. Die Lösung mit dem <button>-Element ist optisch einfach wesentlich reizvoller, da man hier zwischen der Button-Beschriftung und dem zu sendenden Wert unterscheiden kann, von einer Bebilderung mittels <img>-Elementen und der leichteren Gestaltung per CSS ganz zu schweigen (Hintergrundbild bei <input> ist im IE extrem aufwendig: entweder inline-styles oder viele CSS-Klassen, denn der IE kann keine attributbedingte Formatierung wie input[type=submit]!).
Ich suche nun nach einer Möglichkeit, mir die zu übermittelnden Werte in Javascript ausgeben zu lassen, um den Wert für den betätigten Submit-Button auf den im value-Attribut notierten zurückzusetzen. Dazu habe ich mir einmal alle Objekt-Elemente des <form>-Elementes in eine <textarea> schreiben lassen - eine sehr unüberschaubare Menge an Eigenschaften und Unter-Objekten war die Folge. Außerdem werden ja nicht alle im Formular enthaltenen Buttons gesendet, sondern nur einer...
Formular-Elemente onsubmit überprüfen kann ich (stehen ja im DOM-Tree), aber das löst mein Problem nicht. Wie kann ich mir also in einem onsubmit-Event alle _zu sendenen Werte_ ausgeben lassen (stehen vermutlich in irgendeinem Objekt)?
Liebe Grüße aus Ellwangen,
Felix Riesterer.