Hola
Me he tardado mas, pero como lo dicho es deuda
Código Javascript
:
Ver originalwindow.onload = function() {
var frm=document.form1;
for(var i=0,elementos=frm.elements;i<elementos.length;i++)
Evento(elementos[i], 'keydown', function(event){tabular(event, this);});
}
function Evento(elemento,nomevento,funcion) {
if (elemento.attachEvent) {
var fnc=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,fnc);
return true;
}
else
if (elemento.addEventListener) {
elemento.addEventListener(nomevento,funcion,false);
return true;
}
else
return false;
}
var inicio;
function tabular(evt, obj) {
inicio = new Date();
tecla = (evt) ? evt.keyCode : evt.which;
if(tecla==8) return;
else if (tecla==13) tabulaEnter(evt, obj);
else tabulaLength(evt, obj);
}
function tabulaEnter(evt, obj) {
for(var j=0, elementos=document.form1.elements;j<elementos.length;j++)
if (elementos[j] == obj) {
if (j == elementos.length-2) j =-1;
break;
}
/*el campos está disabled o hidden*/
if ((elementos[j+1].disabled ==true) || (elementos[j+1].type=='hidden'))
tabulaEnter(evt,elementos[j+1]);
/*el campo es readOnly */
else if (elementos[j+1].readOnly == true )
tabulaEnter(evt,elementos[j+1]);
else
elementos[j+1].focus();
var final = new Date();
alert('ha tardado: ' +parseInt(final-inicio))
return false;
}
function tabulaLength(evt, obj) {
if (obj.value.length == obj.maxLength) {
tabulaEnter(evt, obj);
}
}
lo puedes probar con el HTML de 300 campos que creastes