ins nächte Feld springen mit Enter
frage
- javascript
Hallo!
Vielleicht hatte schon jemand so ein Problem: Man soll beim Navigieren auf der HTML-Seite (beispielsweise in einer Maske) nicht nur mit der TAB-Taste ins jeweils nächste Feld springen, sondern zum Beispiel mit "ENTER" oder mit der Cursor-Taste. Es ist auch soweit realisiert, sowohl für IE als auch für Mozilla. Das Problem ist jetzt, dass wenn in einem Formular ein <input type="submit"> vorkommt, dass beim Drucken auf "ENTER", egal in welchem Feld man sich gerade befindet, ein submit durcheführt wird statt dass ins nächste Feld gesprungen wird. Wie kann man dieses Verhalten unterdrücken, d.h. wie kann man es erreichen, dass auch in diesem Fall einfach ins nächste Feld gesprungen wird wie sonst auch? Vielen Dank im voraus!
hi,
Das Problem ist jetzt, dass wenn in einem Formular ein <input type="submit"> vorkommt, dass beim Drucken auf "ENTER", egal in welchem Feld man sich gerade befindet, ein submit durcheführt wird statt dass ins nächste Feld gesprungen wird. Wie kann man dieses Verhalten unterdrücken, d.h. wie kann man es erreichen, dass auch in diesem Fall einfach ins nächste Feld gesprungen wird wie sonst auch?
das würde ich über den onSubmit-event des formulars abzufangen versuchen.
setze dir zunächst ein flag auf false.
im submitbutton bringst du ein onClick-event unter, welcher dieses flag auf true setzt.
wenn jetzt der onSubmit-event auslöst, prüfst du dieses flag - wenn es true ist, wurde der submit-button explizit geklickt - also gibst du aus dem onSubmit return true zurück, das formular wird abgeschickt.
wenn das flag false ist, wurde der submit-button nicht geklickt, sondern das abschicken wurde durch [enter] in einem der inputs ausgelöst. dann kannst du entsprechend reagieren - den fokus ins nächste input setzen, und das abschicken unterbinden.
wäre an dieser stelle nur noch fraglich, ob du noch eine referenz auf das input-feld, in dem [enter] gedrückt wurde hast, oder ob du dir vorher merken musst, welches input zuletzt den fokus bekommen hatte.
gruß,
wahsaga
Super, vielen lieben Dank!! :)