Fritz: Formular NICHT mit return abschicken

Hallo,

ungeübte Formularbenutzer verwenden immer wieder einmal die Return-Taste in Formularen, um zum nächsten Eingabefeld zu gelangen.
Statt dessen wird dann das - unvollständig ausgefüllte - Formular abgeschickt.
Das könnte man zwar durch eine der hinreichend bekannten Abfrageroutinen verhindern. Ich mag das aber nicht gern, bzw. setze es nur sehr sparsam ein, wenn es unumgänglich ist. Der Benutzer soll selbst entscheiden, was er mitteilen, und welche Felder er ausfüllen will.
Frage: wie kann ich das Abschicken per Return-Taste verhindern, und das Formular nur bei einem expliziten Klick auf den Submit-button abschicken?

(Vielleicht wäre es ja noch eleganter, die Return Taste innerhalb des Formulars zur TAB-Taste umzufunktionieren?)

Gruß Fritz

--
ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
  1. Siehe [pref:t=59069&m=331858]!

    1. Hallo,

      Siehe [pref:t=59069&m=331858]!
      ... verbiege diese Funktionalität nicht unnötig ...

      ok., sehe ich ein. Also kein Umfunktionieren der Enter-Taste.

      Bleibt das eigentliche Problem: wie kann ich ungeübte Benutzer davor bewahren, das Formular versehentlich abzuschicken.

      Der von Sven Rautenberg [pref:t=59069&m=331858] vorgeschlagene Hinweis kann doch nur eine Krücke sein. Ich will, daß ein potentieller Kunde mit mir möglichst einfach Kontakt aufnimmt, ohne daß ich ihn vorher aufklären muß. (erfahrene Benutzer werden die Entertaste ohnehin erst drücken, wenn ihre Angaben vollständig sind; sie werden also in keiner Weise eingeschränkt durch mein Vorhaben.)

      Gruß Fritz

      --
      ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
      1. Ahoj!

        Es kommt ja immer drauf an, was für ein Formular du machen willst.

        Wenn es ein einfacher Formmailer sein soll a la

        Name, E-Mail, Text

        dann ist das, was du vorhast nicht sinnvoll.

        Es gibt keinen goldenen Mittelweg zwischen Einschränken (durch JS z.B.) und Helfen (eben durch dieses).

        Der von Sven Rautenberg vorgeschlagenen Hilfe/Erläuterungstext ist denke ich die einzig praktikable Möglichkeit!

        Ahoj!
        --
        Philipp

        1. Hallo,

          Der von Sven Rautenberg vorgeschlagenen Hilfe/Erläuterungstext ist denke ich die einzig praktikable Möglichkeit!

          Es kommt ja noch schlimmer:
          In einem mehrzeiligen Eingabefeld (textarea) klappt die Zeilenschaltung per Enter-Taste wieder, wie es der von mir ins Auge gefasste Ungeübte z.B. von Word her kennt. Also muß der Rautenbergsche Erläuterungstext noch ein wenig umfangreicher ausfallen.
          Gruß Fritz

          --
          ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
      2. Moin,

        Bleibt das eigentliche Problem: wie kann ich ungeübte Benutzer davor bewahren, das Formular versehentlich abzuschicken.

        Na indem du halt onSubmit() mit JavaScript überprüfst ob dir die Eingaben gefallen, und falls dem nicht so ist, das Feld das noch ergänzt werden soll auswählst (....focus()), den Benutzer mit einem Hinweistext (kein Popup oder alert()! verändere einfach den Seitentext mit DHTML und mache die Änderung rot, o.ä.) und dann das Abschicken abbrichst (mit return false;).

        Im Extremfall und je nach Formularaufbau reduziert das dann sogar die Formularabschick- zur Feldwechselfunktion.

        Persönliche Meinung: Im Übrigen halte ich es dennoch nicht für eine gute Idee auf diese Art die Browserfunktionen zu verbiegen und gegen das Principle of least surprise zu verstoßen. Wenn ich ein Formular abschicken will, dann will ich es in der Regel auch abschicken. Ich sehe nicht ein warum man mir wegen einiger weniger die ihren Browser nicht bedient kriegen meinen kaputt machen sollte.

        --
        Henryk Plötz
        Grüße von der Ostsee
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~