Cursor automatisch weiter
Dommie
- javascript
0 Der Martin
0 molily
Hallo Forum,
wie kann ich erreichen, dass der Cursor, nach Eingabe eines Wertes in ein form-input-Feld und anschließendem Drücken der Enter-Taste, ein Feld automatisch weiter rückt?
Danke für alle Antworten, Dommie!
Hallo,
wie kann ich erreichen, dass der Cursor, nach Eingabe eines Wertes in ein form-input-Feld und anschließendem Drücken der Enter-Taste, ein Feld automatisch weiter rückt?
wieso möchtest du ein so ungewöhnliches Verhalten, das deine Besucher verunsichert? Wenn ich die Enter-Taste drücke, erwarte ich normalerweise, dass das Formular abgeschickt wird.
So wie ich das sehe, ist dieser Wunsch ohnehin nur mit Javascript zu lösen. Überwache die Tastendrücke (onkeydown), überwache zusätzlich permanent, welches Feld gerade den Focus hat (onfocus), und setze abhängig davon den Fucus neu. Außerdem musst du mit dem entsprechenden Eventhandler (onsubmit) noch dafür sorgen, dass das Absenden des Formulars verhindert wird.
Insgesamt also keine sehr benutzerfreundliche Sache. Aber zum Glück braucht man ja nur Javascript zu deaktivieren, um wieder das normaler Standardverhalten zu bekommen.
So long,
Martin
Hallo,
So wie ich das sehe, ist dieser Wunsch ohnehin nur mit Javascript zu lösen. Überwache die Tastendrücke (onkeydown), überwache zusätzlich permanent, welches Feld gerade den Focus hat (onfocus), und setze abhängig davon den Fucus neu. Außerdem musst du mit dem entsprechenden Eventhandler (onsubmit) noch dafür sorgen, dass das Absenden des Formulars verhindert wird.
Man kann auch einfach die Standardauswirkung des keypress-Events unterdrücken, dann wird das Formular nicht abgesendet. Dazu reicht ein return false am Ende der Handler-Funktion des keydown-Events (wenn der Handler mit JavaScript registriert wurde).
onsubmit könnte man zwar nutzen, dann käme man aber in Schwierigkeiten, wenn das Formular wirklich abgesendet werden soll.
Siehe auch Mit Tabulator und Enter zum nächsten Eingabefeld weiterspringen (das Script geht beim Zugriff auf das Elementobjekt allerdings unnötigerweise vom Internet Explorer aus).
An den Tastencode kommt man Cross-Browser wie üblich:
function handler (Ereignis) {
if (!Ereignis)
Ereignis = window.event;
var tastencode;
if (Ereignis.which)
tastencode = Ereignis.which;
else if (Ereignis.keyCode)
tastencode = Ereignis.keyCode;
alert(tastencode);
...
}
Mathias