Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Enter por tab

Estas en el tema de Enter por tab en el foro de Jquery en Foros del Web. Existe algun codigo que me permita transformar el tab por el enter???...
  #1 (permalink)  
Antiguo 07/11/2014, 16:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 1
Enter por tab

Existe algun codigo que me permita transformar el tab por el enter???
  #2 (permalink)  
Antiguo 07/11/2014, 17:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enter por tab

Claro:

Código Javascript:
Ver original
  1. var inputs = $("form :text"),
  2.     length = inputs.length,
  3.     i = 0;
  4.  
  5. inputs.on("keypress", function(event){
  6.     var code = event.keyCode || event.which;    
  7.     if (code == 13){
  8.         event.preventDefault();
  9.         i = i == length - 1 ? 0 : ++i;
  10.         inputs[i].focus();
  11.     }
  12. });

Tomo a todos los <input type = "text" /> del formulario y el total que estos representan, además, declaro una variable que usaré como contador e inicializaré en cero. Cuando pulsemos una tecla teniendo el enfoque alguna de las cajas de texto, tomo el código de la tecla pulsada y la evalúo; si es igual a 13 (el código de la tecla ENTER), evito el comportamiento natural del evento que, para este caso, enviaría los datos del formulario a procesarse, actualizo el valor del contador y le doy el enfoque a la caja de texto equivalente al nuevo valor del contador.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 07/11/2014, 18:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Enter por tab

gracias lo pruebo y te aviso
  #4 (permalink)  
Antiguo 10/11/2014, 14:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Enter por tab

No me anda!!!!!, te paso los dos archivos simplicadisimos:


*********************** 4.php

<html>
<head>
<title>Prueba</title>
<meta charset="utf-8">
</head>


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="5.js"></script>

<body>
<form method="post" action="">
<input type='text'>
<input type='text'>
<input type='text'>
</form>
</body>
</html>




************************** 5.js
var inputs = $("form :text"),
length = inputs.length,
i = 0;

$(document).ready(function()
{
console.log(length);
inputs.on("keypress", function(event)
{
var code = event.keyCode || event.which;
if (code == 13)
{
console.log('aaaaaaaaaa');
event.preventDefault();
i = i == length - 1 ? 0 : ++i;
inputs[i].focus();
}
});
})



Discupla si hay algun horror, soy muy nuevo en esto y tal vez hay algun horror.
Saludos y espero atento tu respuesta.
  #5 (permalink)  
Antiguo 10/11/2014, 16:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enter por tab

Coloca esto:

Código HTML:
Ver original
  1. <script type="text/javascript" src="5.js"></script>

Justo antes de esto:

Código HTML:
Ver original
  1. </body>

De este modo, el código se ejecutará luego de terminada la carga del documento.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 11/11/2014, 08:42
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Enter por tab

sabes que me sigue sin andar!!, cambie esa linea, aunque dos cosas, ponerlo antes del body es solo evitar la linea en blanco que tengo, y otra

$(document).ready(function()

no hace que el doc este cargado?
  #7 (permalink)  
Antiguo 11/11/2014, 09:22
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Enter por tab

Vos querés que cuando se apriete tab se envíe el formulario? Como si se apretara enter? En ese caso el código debería ser:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(document).ready(function(){  
  3.         var inputs = $("form :text"),
  4.         length = inputs.length,
  5.         i = 0;
  6.  
  7.         inputs.on("keydown", function(event) {
  8.             var code = event.keyCode || event.which;
  9.                 console.log(code);
  10.             if (code == 9) {
  11.                 console.log('tab presionado');  
  12.                 event.preventDefault();
  13.  
  14.                 $('#idDeTuForm').submit();
  15.             }
  16.         });
  17.     });
  18. </script>

Si lo que querés hacer es lo contrario, que al apretar enter se comporte como un tab, el código que te pasó Alexis88 es correcto. Y sí, en efecto el document ready hace que tu código se ejecute una vez que el documento está completamente cargado. Ojo igual que la parte que captura los inputs está por fuera del document ready y por tanto no los va a tomar. Debería ser así:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(document).ready(function(){  
  3.         var inputs = $("form :text"),
  4.         length = inputs.length,
  5.         i = 0;
  6.  
  7.         // El resto del código
  8.     )};
  9. </script>

Saludos :)
  #8 (permalink)  
Antiguo 11/11/2014, 11:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enter por tab

Es exactamente lo que te dice GeekGirl. No me había fijado que declarabas las variables por fuera del método .ready(). Te sugiero que la próxima vez utilices el highlight respectivo para publicar código, así será más legible.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 11/11/2014, 14:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Enter por tab

Listo , quedo muy bien, coloque lo que me faltaba dentro del $(document).ready

gracias a todos!!!, espero verlos en mi otra duda "Seleccionar un elemento de la tabla generada con ajax" al menos para tener una pista!!

saludos y gracias Alexis88 y GeekGirl nuevamente!! gracias x su tiempo.

Etiquetas: enter, tab
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.