para que corra mas rapido, de acuerdo a mi experiencia
primero hacer una funcion que recorra los campo para llenar y generar un array de datos. Esto va a demorar lo mismo que se te demora, pero solo en el inicio. Por ejemplo (esta hecho a la rapida)
Código Javascript
:
Ver originalvar arrayelementos=new Array()
var contador=0;
elementos=document.forms[0]
for(i=0;i<elementos.length;i++){
//AQUI VALIDAS LOS DISABLED, READONLY, BUTTON, SUBMIT, ETC
arrayelementos[contador]=elementos.elements[i];
contador++;
}
Luego de eso le asignas valores a los eventos onkeydown y de acuerdo al indice del array te posicionas uno mas adelante, hasta llegar al ultimo, le puedes agregar tambien que se devuelva o comienze de cero al llegar al ultimo.
La idea es que te trabaje con el array de objetos identificados y no los recorra una y otra vez, sino que despues de ello compare con array que es mas rapido
salu2 y que te vaya bien