Benutzerdefinierte Suche

[Webformular:]Abschicken durch Return/Enter verhindern

  1. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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.
     
    maceis, 15.01.2006
  2. Pingu

    PinguMacUser Mitglied

    Mitglied seit:
    04.08.2003
    Beiträge:
    4.900
    Zustimmungen:
    341
    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
     
    Pingu, 15.01.2006
  3. master_p

    master_pMacUser Mitglied

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

    dms

    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

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.984
    Zustimmungen:
    1.546
    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).
     
    wegus, 15.01.2006
  6. Incoming1983

    Incoming1983MacUser Mitglied

    Mitglied seit:
    23.07.2005
    Beiträge:
    7.545
    Zustimmungen:
    1
    Setze serverseitige Validatoren ein.
    (und nicht javascript)
     
    Incoming1983, 15.01.2006
  7. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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">
     
    maceis, 15.01.2006
  8. dms

    dms

    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 StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    @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.
     
    maceis, 15.01.2006
  10. Pingu

    PinguMacUser Mitglied

    Mitglied seit:
    04.08.2003
    Beiträge:
    4.900
    Zustimmungen:
    341
    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
     
    Pingu, 15.01.2006
Die Seite wird geladen...
Ähnliche Themen - [Webformular ]Abschicken durch
  1. sebi89
    Antworten:
    5
    Aufrufe:
    1.196
  2. maceis
    Antworten:
    4
    Aufrufe:
    1.392
    rm -r *
    29.08.2010
  3. Swyti
    Antworten:
    5
    Aufrufe:
    1.589
  4. allan
    Antworten:
    1
    Aufrufe:
    514
  5. Marina
    Antworten:
    3
    Aufrufe:
    1.103