Мои скромные познания в JS вылелись в вот это вот
Напомню - вводим тольцко цифры.
function autofocus(next,prev, e){
evt = (e)? e: event;
var elem = (evt.target) ? evt.target : evt.srcElement;
var key = evt.keyCode;
var limit = elem.maxLength;
if(((key>=48) && (key<=57)) || ((key>=96) && (key<=105)) || (key==8) || (key>=37 && key<=40))
{
if(key==8 && prev)
{
if(elem.value.length==0)
{
elem.form.elements[prev].focus();
elem.form.elements[prev].select();
}
}
if (((key>=48) && (key<=57)) || ((key>=96) && (key<=105)) && (elem.value.length==limit) && next)
{
elem.form.elements[next].focus();
elem.form.elements[next].select();
}
}
else
{
elem.value=parseInt(elem.value);
if(isNaN(elem.value))
{
elem.value="";
}
}
}
Вот еще бы при возвращении коретку помещать в конец инпута, вместо выделения всего текста.