Friedemann: Mehrmals <button type="submit"> in einer Form und MSIE

Ich habe mehrmals <button type="submit" name="xxx" value="yyy"> in einem Formular. Alle gaengingen Browser (ausser MSID) schicken bei Anklicken eines dieser Buttons einen Parameter mit Name=Value an mein CGI-Skript. Dass der IE statt des Values den innerText schickt, waere noch zu verkraften, aber dass er dies mit allen auf der Seite enthaltenen Buttons tut, egal welcher gedrueckt wurde, halte ich fuer sinnlos....MS halt.

Meine Idee fuer einen Workaround: Ein hidden-Form-Textfield, der onClick-Event soll da was schoenes eintragen. Nun aber die Frage: Wird beim Druecken des Buttons zuverlaessig erst der onClick-Event ausgefuehrt, bevor das submit zum Zuge kommt?

Hat hier jemand Erfahrungen?

Gruss!

  1. hallo,

    Dass der IE statt des Values den innerText schickt

    ist etwas sehr Verwunderliches. Meiner tut so etwas nicht, sondern verhält sich in diesem Fall genauso wie alle anderen Browser. Irgendwas scheint also mit deinem Formular nicht zu stimmen.

    Meine Idee fuer einen Workaround: Ein hidden-Form-Textfield, der onClick-Event soll da was schoenes eintragen. Nun aber die Frage: Wird beim Druecken des Buttons zuverlaessig erst der onClick-Event ausgefuehrt, bevor das submit zum Zuge kommt?

    Es sind zwei völlig verschiedene Dinge. "onClick" ist ein Javascript-EventHandler, der in deinem Browser irgendetwas auslöst, "submit" schickt die Formulardaten an den Server. Grundsätzlich sollte das etwas zeitgleich geschehen.

    Grüße aus Berlin

    Christoph S.

    1. hallo,

      Dass der IE statt des Values den innerText schickt

      ist etwas sehr Verwunderliches. Meiner tut so etwas nicht, sondern verhält sich in diesem Fall genauso wie alle anderen Browser. Irgendwas scheint also mit deinem Formular nicht zu stimmen.

      Hm...dass deiner das nicht tut, ist umso verwunderlicher, als in der offiziellen Microsoft-Dokumentation genau dieses Verhalten definiert ist...angeblich schickt der IE5 den Value-Wert falls vorhanden, ansonsten den innerText...bei mir allerdings trotzdem immer letzteren.

      Es sind zwei völlig verschiedene Dinge. "onClick" ist ein Javascript-EventHandler, der in deinem Browser irgendetwas auslöst, "submit" schickt die Formulardaten an den Server. Grundsätzlich sollte das etwas zeitgleich geschehen.

      Schon klar, aber anders kann ich eben nicht feststellen, welcher Button denn nun aktiviert wurde.

  2. hi,

    Meine Idee fuer einen Workaround: Ein hidden-Form-Textfield, der onClick-Event soll da was schoenes eintragen. Nun aber die Frage: Wird beim Druecken des Buttons zuverlaessig erst der onClick-Event ausgefuehrt, bevor das submit zum Zuge kommt?

    nein. im falle das JS deaktiviert ist, wird es sogra mit 100%iger "zuverlässigkeit" _nicht_ ausgeführt.

    gruss,
    wahsaga

    1. nein. im falle das JS deaktiviert ist, wird es sogra mit 100%iger "zuverlässigkeit" _nicht_ ausgeführt.

      Das hatte ich mir schon fast gedacht *lol*, aber jemand, der so sicherheitsbewusst ist, JavaScript abzuschalten, wird wahrscheinlich auch einen standardkonformen Browser benutzen....

      Aber wenn es nun aktiviert ist, ist das Deiner werten Meinung nach auch nicht zuverlaessig?

  3. Hi,

    Wird beim Druecken des Buttons zuverlaessig erst der onClick-Event ausgefuehrt, bevor das submit zum Zuge kommt?

    ja, sofern Javascript aktiv ist.

    Gruesse  Joachim

  4. hi,

    Ich habe mehrmals <button type="submit" name="xxx" value="yyy"> in einem Formular. Alle gaengingen Browser (ausser MSID) schicken bei Anklicken eines dieser Buttons einen Parameter mit Name=Value an mein CGI-Skript. Dass der IE statt des Values den innerText schickt, waere noch zu verkraften, aber dass er dies mit allen auf der Seite enthaltenen Buttons tut, egal welcher gedrueckt wurde, halte ich fuer sinnlos....MS halt.

    • das der msie dir noch nicht mal den name des button schickt, kenn ich nicht. ich kenn nur das er dir den wert[value] nicht mitschickt :(.
      da kannst du aber mit den button_x button_y abfangen, leider keine schoene lösung aber dafür kannst du schonmal mitbekommen welcher button gedrückt worden ist.

    << hans

      • das der msie dir noch nicht mal den name des button schickt, kenn ich nicht. ich kenn nur das er dir den wert[value] nicht mitschickt :(.

      Dochdoch, das tut er durchaus, aber das selbe eben auch fuer alle Buttons, die nicht angeklickt wurden.

      da kannst du aber mit den button_x button_y abfangen, leider keine schoene lösung aber dafür kannst du schonmal mitbekommen welcher button gedrückt worden ist.

      Ich dachte, die beiden Werte geben die Koordinaten _innerhalb_ des geclickten Buttons an? Ich kann schlecht vom User verlangen, dass er in jedem Button eine vordefinierte Stelle benutzt ;) (Button Index bitte immer in der linken oberen Ecke beruehren...)