Aktivieren des nächsten Eingabefeldes im Formular bei Enter

9

Das Bestellformular enthält Spalten mit Produktcode und Menge in mehreren Zeilen und die Schaltfläche zum Löschen (-) am Ende jeder Zeile. Es enthält auch hinzufügen Schaltfläche in der ersten Spalte und nach dem Formular.

Durch Drücken der Eingabetaste wird der Fokus auf den nächsten Text oder das numerische Eingabefeld (Produktcode oder -menge) gesetzt, wobei die Tasten übersprungen werden.

Ich habe versucht, Code unten wird verwendet, aber Enter-Taste wird ignoriert.

Der Chrome-Debugger zeigt an, dass Zeile $(this).next('input').focus() jedoch ausgeführt wird Der Aufruf von focus () hat keine Auswirkung.

jquery, jquery-mobile, ASP.NET MVC4 werden verwendet

%Vor%     
Andrus 26.10.2013, 18:31
quelle

1 Antwort

4

Das Problem ist, dass die nächste Eingabe manchmal eine Schaltfläche ist. Hier ist eine JS Fiddle mit einer möglichen Lösung:

Ссылка

Ich habe den HTML-Elementen, die Eingaben für den Benutzer sind, ein Datenattribut hinzugefügt. Das Attribut enthält auch einen inkrementierenden Index, so dass Sie die Reihenfolge der Elemente, die den Fokus erhalten, steuern können.

Hier sind die HTML-Änderungen:

%Vor%

Hier ist das neue JavaScript-Ereignis, das sich zwischen den Eingabefeldern bewegt. Er bestimmt den Index des Elements, das gerade bearbeitet wird, indem er $ (event.target) .attr ('datenindex') verwendet. Es erhöht den Index und wählt das nächste Element mit diesem aus.

%Vor%     
Sam 26.10.2013, 19:26
quelle

Tags und Links