Buttons und ENTER-Taste
Michael Motzkus
- javascript
Hallo,
kann mir hier eventuell jemand weiterhelfen? Ich habe ein Formular mit DB-Anbindung, das per Submitbutton abgeschickt wird. Wenn nicht alle Pflichtfelder ausgefüllt werden und der Benutzer die ENTER-Taste betätigt, wird das Formular abgeschickt und es kommt zu Fehlermeldungen vom DB-Server.
Meine Frage:
Schuld daran ist wohl, dass der Submitbutton automatisch den Fokus erhält. Gibt es eine zuverlässige Methode, den Fokus "onLoad" von diesem Button wegzunehmen?
Was ich dabei NICHT möchte:
1.) Formvalidation per JavaScript. Das macht das Script auf dem Server schon.
2.) Einen zusätzlichen Button oder Buttontausch. Die Reihenfolge muss, so wie sie ist, beibehalten werden.
Vielen Dank Euch allen!
/Michael Motzkus
Hallo Michael,
Gibt es eine zuverlässige Methode, den Fokus "onLoad" von diesem Button wegzunehmen?
Es geht ja nicht um "onLoad", sondern
Was ich dabei NICHT möchte:
1.) Formvalidation per JavaScript. Das macht das Script auf dem Server schon.
2.) Einen zusätzlichen Button oder Buttontausch. Die Reihenfolge muss, so wie sie ist, beibehalten werden.
Vielen Dank Euch allen!
/Michael Motzkus
Es geht ja nicht um "onLoad", sondern
*g* - jo, da wollte ich auch mal die Enter-Taste ausprobieren!
Also weiter im Text:
Es geht da aber eigentlich nicht um "onLoad", sondern darum, dass die Submit-Funktion ausgeloest wird, wenn sich der Anwender im Formular (z.B. in einem Eingabefeld) befindet.
Was ich dabei NICHT möchte:
1.) Formvalidation per JavaScript. Das macht das Script auf dem Server schon.
Dann frage ich mich, warum es dann bei Submit via Enter-Taste nicht validiert? Submit ist Submit - anders kommen die Daten doch beim Server und dem Script auf dem Server gar nicht an. Und wenn sie ankommen, kann das Script doch die Eingaben pruefen. Oder wo denke ich da verkehrt?
2.) Einen zusätzlichen Button oder Buttontausch. Die Reihenfolge muss, so wie sie ist, beibehalten werden.
Du kannst z.B. versuchen, via Ereignisueberwachung die Enter-Taste abzufangen. Aber wenn du kein JavaScript willst, kommt auch das nicht in Frage. Ich selber wuerde es ueberigens so machen: ich wuerde in das Formular einen Hinweis schreiben, dass man das Formular erst dann mit dem Submit-Button oder mit Enter abschicken solle, wenn man alle Pflichtfelder ausgefuellt hat - "den Anwender kooperieren lassen" nenne ich das ;-)
viele Gruesse
Stefan Muenz
Hallo Stefan,
Du kannst z.B. versuchen, via Ereignisueberwachung die Enter-Taste abzufangen. Aber wenn du kein JavaScript willst, kommt auch das nicht in Frage. Ich selber wuerde es ueberigens so machen: ich wuerde in das Formular einen Hinweis schreiben, dass man das Formular erst dann mit dem Submit-Button oder mit Enter abschicken solle, wenn man alle Pflichtfelder ausgefuellt hat - "den Anwender kooperieren lassen" nenne ich das ;-)
viele Gruesse Stefan Muenz
vielen Dank für Deine Antwort ... ich bin tief beeindruckt - schließlich hab ich mit SelfHTML HTML gelernt.
Okay ... also, meine User werden in gar keinem Fall kooperieren - die meisten können gerade mal lesen und schreiben :-(, das heißt, hier sind so ziemlich alle Fehlermöglichkeiten im Vorfeld zu beachten.
Ich werde meine serverseitige Programmierung also noch ein bisschen gründlicher überarbeiten müssen ... und ich krieg den Fokus wirklich nicht weg? Naja, war wohl nicht wirklich die Ursache - trotzdem, danke!
Viele Grüße
Michael Motzkus
Hallo Michael,
kann mir hier eventuell jemand weiterhelfen? Ich habe ein Formular mit DB-Anbindung, das per Submitbutton abgeschickt wird. Wenn nicht alle Pflichtfelder ausgefüllt werden und der Benutzer die ENTER-Taste betätigt, wird das Formular abgeschickt und es kommt zu Fehlermeldungen vom DB-Server.
1.) Formvalidation per JavaScript. Das macht das Script auf dem Server schon.
Macht es definitiv nicht, denn sonst hättest du keine Fehlermeldung.
Löse es serverseitig. Gib dem Submitbutton einen Namen und mache die Ausführung deines Scriptes davon abhängig. Denn der Name dieses Buttons wird nur übertragen, wenn über diesen Button das Formular abgesendet wird.
Viele Grüße
Antje
Anstatt:
<input type="submit" .......>
So:
<input type="button" onclick="document.formularname.submit();" ......>
Wird halt bei Mausklick abgeschickt !
Gruss
m-ac