Auge: Unerklärliches Verhalten bei Form Submit

Beitrag lesen

Hallo

Beim Submit über die Enter-Taste wird der erste Submit-Input übermittelt. Dabei ist es egal, ob du ihn per CSS ausgeblendet hast. Wozu brauchst du überhaupt einen versteckten Submit-Input?

Ist das immer so das dann nur der erste Submit Input übermittelt wird?

Ich habe das mal mit nur drei Browsern mit einer lokalen Datei („file:///…“) und der Methode GET getestet.

  1. Firefox: Es wird der erste Submit-Input übermittelt, auch wenn dieser unsichtbar ist.
  2. Chromium: Es wird wie beim Firefox der erste Submit-Input übermittelt, auch wenn dieser unsichtbar ist.
  3. IE 11: Es wird der erste sichtbare Submit-Input übermittelt. Er verhält sich so, wie du es anfangs erwartet hast.

Wenn ich den versteckten "cmd_Home" weglasse, dann wird mit ja der Input "cmd_Profil" übertragen. Und den werte ich weiter unten im Code aus und inkludiere eine neue Datei.

Und das ist dann falsch. Ich will dies nur inkludieren wenn wirklich nur auf den Button "cmd_Profil" geklickt wird. Das mit dem versteckten "cmd_Home" ist nur eine Notlösung.

Was mir auf Anhieb durch den Kopf geht:

  • Du kannst die Entscheidung von einem zusätzlichen Formularfeld abhängig machen (z.B. zwei Radiobuttons) und mit nur einem Submit arbeiten. Das erfordert aber eine weitere Eingabe vom Benutzer, sobald vom Standardwert abgewichen wird.
  • Du kannst eine Prüfung über JS einbauen, die eventuell vorhandene Abhängigkeiten prüft. Z.B.: Nimm cmd_Profil dann, wenn txt_kundenummer ausgefüllt ist, sonst nimm cmd_Home. Das solltest du aber nur bei einer Webanwendung machen, die eh JS voraussetzt.
  • Wenn du alleiniger Nutzer des Formulars bist, verlasse dich darauf, den richtigen™ Button zu benutzen und fluche herzhaft wie ein Bierkutscher, wenn du's vergisst.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war. Terry Pratchett, “Wachen! Wachen!