que sugeriría el establecimiento maxlength como 1 a cada cuadro de texto y cambiar al siguiente una vez que el val.length
y la maxlength
es igual.
DEMO
$(".inputs").keyup(function() {
if (this.value.length == this.maxLength) {
$(this).next('.inputs').focus();
}
});
Editar: pasado algún tiempo para el siguiente (no probado completamente, pero las pruebas básicas funcionaba bien)
1. Allowing just numeric chars
2. Allow some control like del, backspace, e.t.c
3. Backspace on empty textbox will move to prev textbox
4. charLimit var to dynamically decide how many char you want to restrict.
Código:
$(function() {
var charLimit = 1;
$(".inputs").keydown(function(e) {
var keys = [8, 9, /*16, 17, 18,*/ 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145];
if (e.which == 8 && this.value.length == 0) {
$(this).prev('.inputs').focus();
} else if ($.inArray(e.which, keys) >= 0) {
return true;
} else if (this.value.length >= charLimit) {
$(this).next('.inputs').focus();
return false;
} else if (e.shiftKey || e.which <= 48 || e.which >= 58) {
return false;
}
}).keyup (function() {
if (this.value.length >= charLimit) {
$(this).next('.inputs').focus();
return false;
}
});
});
DEMO
Ver este post [1]: http://stackoverflow.com/questions/1232379/setting-the-focus-to-the-next-input-in-jquery – BinBin
Consulte [publicación actualizada] (http://stackoverflow.com/a/10539258/297641) para obtener algunas características nuevas ... más como ' autotab' [DEMO] (http://jsfiddle.net/skram/qygB2/4/) –