Publicidad [cerrar]
                 ¿Quieres registrarte?

Convertir un ENTER en un TAB con Javascript y jQuery

Por: shakka
6 de Julio del 2010
128 de clabLevel
Otros artículos de shakka
2,220 visitas

Hay usuarios que quieren que un ENTER lo mande a otro campo como un TAB. Lo podemos lograr con Javascript y el framework jQuery. No veo que tiene de malo la tecla tabulador, pues ambas están normalmente en los extremos del teclado. Será por complacer a las mayorías en lugar de los zurdos, y si es un zurdo el único que va a usar el sistema.

El caso es que si usamos jQuery, colocamos este capturador del evento, al presionar alguna tecla:

Código en jQuery para capturar las presiones del teclado


Código :

   $(document).ready(function() {
   /* Aquí podría filtrar que controles necesitará manejar,
    * en el caso de incluir un dropbox $('input, select');
    */
   tb = $('input');
    
   if ($.browser.mozilla) {
       $(tb).keypress(enter2tab);
   } else {
       $(tb).keydown(enter2tab);
   }
   });


Código jQuery para cambiar el ENTER por un TAB


Esta función hace que un ENTER se comporte como un TAB, esto hará que al dar ENTER el elemento siguiente obtenga el foco.

Código :

   function enter2tab(e) {
       if (e.keyCode == 13) {
           cb = parseInt($(this).attr('tabindex'));
    
           if ($(':input[tabindex=\'' + (cb + 1) + '\']') != null) {
               $(':input[tabindex=\'' + (cb + 1) + '\']').focus();
               $(':input[tabindex=\'' + (cb + 1) + '\']').select();
               e.preventDefault();
    
               return false;
           }
       }
   }


Hay otras técnicas, pero mi versión opera utilizando la propiedad tabindex de los elementos HTML, lo cual es lo que necesitaba.

 


También te interesa


Etiquetasjavascript jquery

Comentarios | Enviar un comentario
Como experimento bien, pero en la realidad es un grave error de accesibilidad cambiar el comportamiento que se espera de una tecla por otro que no se espera, por mucho que alguna gente espere que el TAB se comporte como un ENTER. Y si no hay mas remedio (algo que dudo) indicar al usuario este tipo de comportamiento.
Es como cuando rellenando un formulario, al completar un campo, el foco se va automáticamente al siguiente campo.

El usuario es el que tiene que tener el control completo.

Salu2.
Por: skabeche
a ser franco es una muy mala aplicación de una técnica muy buena.

lo de dar focus() en un determinado evento es realmente util, lo he usado en formularios para ingresar el código de una tarjeta, y eso de agregar eventos al pulsar cierta tecla, es algo que aun no se me a dado la oportunidad de usar, pero es muy util para darle un nuevo nivel a la usabilidad de un sistema con atajos de teclado
Por: Inyaka
Cierto no es muy visible o útil para muchos cambiar lo de posición, pero bueno, es una buena técnica
Por: AzrL
A mi personalmente no me gusta cambiar el comportamiento por defecto de la teclas, pero este caso fue muy enfatico el cliente en que queria que fuera de esta manera y era para una aplicacion de uso interno.
Por: shakka
Hola:
Frente a los requerimientos del cliente, muchas veces no tenemos forma de explicarle que algo no se puede hacer. Y lo mejor es buscar una solucion.
Lo tipico de una aplicacion es que al presionar enter me pase al siguiente campo.

Es comodo verdad?

Entonces solo hay que aplicarlo.
Por: lcornejo-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.





Publicidad [cerrar]
[ musica | lanzarote | horoscopos | camaras de cine | juegos ]
horoscopos diseño grafico valencia