[Webformular:]Abschicken durch Return/Enter verhindern

Diskutiere mit über: [Webformular:]Abschicken durch Return/Enter verhindern im Web-Programmierung Forum

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo zusammen,,

    wie kann ich in einem <form> verhindern, dass durch Return/Enter das Formular abgeschickt wird?
    Auf die Dauer ist es etwas nervig, wenn immer wieder nicht oder halb ausgefüllte Formulare per Email ankommen.

    Am besten wäre es, wenn Return und Enter einfach so wie Tab ins nächste Feld springen würden.

    Danke im voraus.
     
  2. Pingu

    Pingu MacUser Mitglied

    Beiträge:
    4.894
    Zustimmungen:
    341
    Registriert seit:
    04.08.2003
    Mach doch enfach eine Überprüfung per JavaScript.

    Die Funktion kommt ins <form action="…" onsubmit="test()" />. Diese Funktion gibt dann true zurück, falls alles erfolgreich ausgefüllt wurde und false, falls etwas vergessen wurde. Wie es geht, siehst Du hier: http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm

    Pingu
     
  3. master_p

    master_p MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    Registriert seit:
    31.01.2005
    Wenn Dein Webspace PHP unterstützt, könntest Du auch unausgefüllte Pflichtfelder als Fehler ausgeben und nicht versenden.
     
  4. dms

    dms Gast

    Wenn ein Formular per Submit-Button abgeschickt wird, wird der Name und der Value des Submit-Buttons als Variable übergeben. Also so z.B.

    <input type="submit" name="submit" value="Absenden" />

    Serverseitig kannst Du jetzt einfach prüfen ob der Wert von $_POST['submit'] "Absenden" ist. Falls ja wird abgesendet, falls nicht wird das Formular wieder mit den Werten ausgegeben. Zusätzlich würde ich aber noch per JavaScript prüfen. Ein feines Beispiel gibt's z.B. hier: http://www.cs.tut.fi/~jkorpela/forms/enter.html
     
  5. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.315
    Registriert seit:
    13.09.2004
    wenn Du ein erneutes HTTP-Request verhindern willst,
    dann bleibt eigentlich nur Javascript!

    Variante 2 ist ein Automat in PHP, bei dem ein Formular sich nach Ausfüllen selbst aufruft und prüft. Im Fehlerfalle geht's erneut zur Eingabe ( mit Hinweis auf die fehlenden Felder) oder eben zur Aktion ( mail versenden).
     
  6. Incoming1983

    Incoming1983 MacUser Mitglied

    Beiträge:
    7.597
    Zustimmungen:
    1
    Registriert seit:
    23.07.2005
    Setze serverseitige Validatoren ein.
    (und nicht javascript)
     
  7. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Vielen Dank für Eure Beiträge.

    Zunächst einmal: Ich setze kein PHP ein und möchte eigentlich auch kein JavaScript verwenden
    Es geht mir auch nicht um eine Überprüfung auf Vollständigkeit o.ä.

    Ich möchte einfach nur, dass ein Return/Enter nicht den submit Button auslöst.

    Die Lösung habe ich inzwischen gefunden (ganz in der Nähe - hihi):
    <input type="submit" class="button" accesskey="s">
     
  8. dms

    dms Gast

    Kannst Du das bitte kurz erklären? Das macht in meinen Augen keinen grossen Sinn. Vlt. funktioniert es im ein oder anderen Browser da dort die "Enter-Funktion" per Acceskey umgesetzt wurde, aber Standard ist es doch sicherlich nicht dass auf solche Weise ein Submit per Enter unterbunden wird.
    Übrigens ist das Verhalten dass Du hier unterbinden willst selbst schon ein Fehler, wie ich gerade gelesen habe. Laut Spezifikation sollte ein Formular nur per Enter abgesendet werden können wenn im gesammten Formular nur ein einziges einzeiliges Eingabefeld enthalten ist.
     
  9. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    @dms
    bisher konnte ich nur in Safari und IE 5+6 testen.
    Funktioniert allerdings nicht wirklich zuverlässig, wie ich inzwischen feststellen musste ;(.
    Für mich würde es schon Sinn machen, dass beim expliziten Konfigurieren eines Accesskeys die "Grundeinstellung", wenn man das mal so nennen will, überschrieben wird.

    Falls noch jemad einen Tip hat: Bitte melden.
    Hier in macuser.de wird übrigens mit Enter/Return nichts abgeschickt.
     
  10. Pingu

    Pingu MacUser Mitglied

    Beiträge:
    4.894
    Zustimmungen:
    341
    Registriert seit:
    04.08.2003
    Wie gesagt JavaScript. Sicherlich mag es die geben, die es auch abgestellt haben (das werden sicherlich auch die sein, die am lautesten Schreien). Aber ich behaupte, daß es in 90% der Fälle funktionieren wird.
    Das aber auch nur, wenn das Texteingabefeld markiert ist. Denn hier ist "Enter" halt für "neue Zeile". Wenn man dagegen das Titelfeld oder eines der Auswahlfelder markiert funktioniert das Absenden auch mit "Enter".

    Pingu
     
Die Seite wird geladen...
Ähnliche Themen - [Webformular ]Abschicken durch Forum Datum
sehr hohe cpu-auslastung durch xampp Web-Programmierung 21.09.2010
Javascript: Formular abschicken Web-Programmierung 29.08.2010
Java Script Bild1 durch Bild2 ersetzten wenn Bild 2 fertig geladen Web-Programmierung 28.02.2010
Durch Doppelklick Feld ändern in mySQL DB Web-Programmierung 05.12.2008
[PHP] Sicherheit von Parametern aus superglobalen Arrays durch Validierung Web-Programmierung 30.04.2007

Diese Seite empfehlen