2017-08-19 2 views
1

Ich habe 4 Eingabefelder nebeneinander.Jquery: Erzwinge Cursor in das nächste Eingabefeld?

Ich versuche, den Benutzer zu zwingen, 1 Zeichen pro Eingabefeld einzugeben und sobald sie 1 Zeichen eingegeben haben, müssen sie das nächste Zeichen in das nächste Feld eingeben, bis die Eingaben abgeschlossen sind.

Allerdings ist mein aktueller Code al über den Ort und ich kann nicht herausfinden, was ich tun muss, um dies zu erreichen.

Dies ist mein Code:

https://jsfiddle.net/ej9tvosj/

$('.inps').keydown(function (event) { 
    // check for hyphen 
var myLength = $(this).val().length; 

if(myLength ==0){ 
$(this).next('.inps').focus(); 
} 


}); 

, wenn Sie etwas in der ersten eingeben, wird es in das nächste Feld springen, aber es wird dort nach bekommen vermasselt.

Könnte jemand bitte Beratung zu diesem Thema?

+0

Sie müssen '' statt keypress' verwenden keydown' – Masiama

+0

meine Antwort überprüfen. Das ist was du brauchst. –

Antwort

2

Sie müssen on input Zuhörer versuchen Änderung des Eingangs zu erkennen, statt keyup da Sie müssen Stellen Sie sicher, dass ein Zeichen eingegeben wird, bevor Sie den Fokus ändern.

$(document).on('input', '.inps', function (event) { 
 
    // check for hyphen 
 
\t var myLength = $(this).val().trim().length; 
 
    if(myLength ==1){ 
 
    $(this).next('.inps').focus(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" >

+0

Boom ... Perfektion –

+0

Was ist der Unterschied in meinem Code. Es funktioniert gleich. –

+0

@AKA, Es funktioniert nicht gleich. Testen Sie beide Codes erneut und Sie werden den Unterschied sehen. –

0

können Sie vergleichen den myLength Wert mit 1 wie im Code-Snippet:

$('.inps').keydown(function (event) { 
 
    // check for hyphen 
 
var myLength = $(this).val().length; 
 

 
if(myLength ==1){ 
 
$(this).next('.inps').focus(); 
 
} 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" > 
 
<input type="text" class="inps" >

+0

Ich versuche, zum nächsten Feld zu springen, sobald es 1 Zeichen im Feld gibt. Zum Beispiel gebe ich A in das erste Feld ein und dann springt es zum nächsten Feld. –

+0

Dies ist, was es tut. Klicken Sie oben auf "Code-Snippet ausführen" und sehen Sie. –

Verwandte Themen