Ver Mensaje Individual
  #16 (permalink)  
Antiguo 03/02/2011, 06:54
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: funcion tabular

Hola

Me he tardado mas, pero como lo dicho es deuda
Código Javascript:
Ver original
  1. window.onload = function() {
  2. var frm=document.form1;
  3. for(var i=0,elementos=frm.elements;i<elementos.length;i++)
  4. Evento(elementos[i], 'keydown', function(event){tabular(event, this);});
  5. }
  6.  
  7.  
  8. function Evento(elemento,nomevento,funcion) {
  9.     if (elemento.attachEvent) {
  10.         var fnc=function(){
  11.             funcion.call(elemento,window.event);
  12.         }
  13.         elemento.attachEvent('on'+nomevento,fnc);
  14.         return true;
  15.     }
  16.     else  
  17.         if (elemento.addEventListener) {
  18.         elemento.addEventListener(nomevento,funcion,false);
  19.         return true;
  20.         }
  21.         else
  22.         return false;
  23. }
  24.  
  25.  
  26.  
  27. var inicio;
  28. function tabular(evt, obj) {
  29. inicio = new Date();
  30. tecla = (evt) ? evt.keyCode : evt.which;
  31.  
  32.     if(tecla==8) return;
  33.     else if (tecla==13) tabulaEnter(evt, obj);
  34.     else tabulaLength(evt, obj);
  35. }
  36.  
  37.  
  38.  
  39.  
  40. function tabulaEnter(evt, obj) {
  41. for(var j=0, elementos=document.form1.elements;j<elementos.length;j++)
  42.  
  43.     if (elementos[j] == obj) {
  44.         if (j == elementos.length-2) j =-1;
  45.         break;
  46.     }
  47.  
  48. /*el campos está disabled o hidden*/
  49.     if ((elementos[j+1].disabled ==true) || (elementos[j+1].type=='hidden'))
  50.                     tabulaEnter(evt,elementos[j+1]);
  51.  
  52. /*el campo es readOnly */
  53.                 else if  (elementos[j+1].readOnly == true )  
  54.                     tabulaEnter(evt,elementos[j+1]);
  55.  
  56.                 else
  57.         elementos[j+1].focus();
  58. var final = new Date();
  59. alert('ha tardado: ' +parseInt(final-inicio))
  60.                     return false;
  61. }
  62.  
  63.  
  64.  
  65. function tabulaLength(evt, obj) {
  66. if (obj.value.length == obj.maxLength) {
  67. tabulaEnter(evt, obj);
  68. }
  69. }
lo puedes probar con el HTML de 300 campos que creastes
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />