Foros del Web » Programando para Internet » Javascript »

Salto automático a siguiente input

Estas en el tema de Salto automático a siguiente input en el foro de Javascript en Foros del Web. Hola. Necesito que al rellenar un input tipo texto salte automáticamente al siguiente input (cada input tiene un límite de caracteres, al alcanzar el límite, ...
  #1 (permalink)  
Antiguo 01/06/2005, 00:16
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Salto automático a siguiente input

Hola.

Necesito que al rellenar un input tipo texto salte automáticamente al siguiente input (cada input tiene un límite de caracteres, al alcanzar el límite, debería pasar al siguiente). Es para introducir fechas más cómodamente, sin tener que pulsar tabulador. ¿Sabéis si hay alguna manera de hacer esto sin tener que construir una función que detecte que se ha rellenado entero?

Gracias.
  #2 (permalink)  
Antiguo 01/06/2005, 01:50
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola mariogl84

Intentalo así:
Código:
<input type="text" maxlength="5" onkeyup="if (this.value.length == this.getAttribute('maxlength')) txt.focus()" />
<input type="text" name="txt" />
Saludos,
  #3 (permalink)  
Antiguo 01/06/2005, 11:20
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Muchas gracias, JavierB, es lo que necesitaba.
  #4 (permalink)  
Antiguo 03/06/2005, 14:06
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Hola. Retomo este tema porque tras haber implementado el código me encuentro con otro problema.

Tengo los campos con sus datos introducidos. Ahora vuelvo a alguno para cambiar el valor que había introducido. Si tecleo el contenido despacio, hace el salto al siguiente campo bien, pero si lo tecleo rápido, se salta dos campos. Supongo que es porque no da tiempo a vaciarse el buffer del teclado, y cuando el foco cae sobre el segundo campo, éste cree que se ha pulsado una tecla, y dispara el evento.

¿Cómo podría solucionarlo?

Gracias.
  #5 (permalink)  
Antiguo 03/06/2005, 17:17
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Cita:
Iniciado por mariogl84
Hola. Retomo este tema porque tras haber implementado el código me encuentro con otro problema.

Tengo los campos con sus datos introducidos. Ahora vuelvo a alguno para cambiar el valor que había introducido. Si tecleo el contenido despacio, hace el salto al siguiente campo bien, pero si lo tecleo rápido, se salta dos campos. Supongo que es porque no da tiempo a vaciarse el buffer del teclado, y cuando el foco cae sobre el segundo campo, éste cree que se ha pulsado una tecla, y dispara el evento.

¿Cómo podría solucionarlo?

Gracias.
bueno, no tengo la solucion a tu inquietud, pero si debo decirte que la teoria nos dice que estos "saltos automaticos" no se deberian de hacer.
  #6 (permalink)  
Antiguo 04/06/2005, 04:54
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Sí, supongo que la teoría lo dice, pero a mí me está pasando en mis propias carnes. Éste es el código:

Código:
<input name="fecha_dia" type="text" id="fecha_dia" size="2" maxlength="2" onkeyup="if (this.value.length == this.getAttribute('maxlength')) { if (event.keyCode!=9) { getElementById('fecha_mes').focus(); } }">
  / 
  <input name="fecha_mes" type="text" id="fecha_mes" size="2" maxlength="2" onkeyup="if (this.value.length == this.getAttribute('maxlength')) { if (event.keyCode!=9) { getElementById('fecha_anio').focus(); } }">
  /
  <input name="fecha_anio" type="text" id="fecha_anio" size="4" maxlength="4"> 
  (dd/mm/aaaa)
Si lo probáis, veréis que al escribir los dos dígitos salta al siguiente campo (hasta aquí bien). Pero si, una vez relleno, volvéis a editar el contenido de uno de los campos, pasa lo que os comentaba: si los tecláis rápidamente, se salta dos campos.
  #7 (permalink)  
Antiguo 04/06/2005, 09:38
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
a mi me funciono bien, quiza escribis 3 digitos, lo que deberias hacer para probar, es que cuando pases de input a input lo seleccione todo para probar el error mejor.
  #8 (permalink)  
Antiguo 04/06/2005, 10:26
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Pues no, escribo dos dígitos .

Cita:
lo que deberias hacer para probar, es que cuando pases de input a input lo seleccione todo para probar el error mejor.
Esto no lo entiendo bien...
  #9 (permalink)  
Antiguo 04/06/2005, 10:38
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola mariogl84

Si en el primer campo tienes escrito 25 y en el segundo 36, cuando editas el primero al escribir 3 dígitos lo que ocurre es que con los 2 primeros pasa al segundo y con el 3º dígito, como el segundo campo ya tiene el máximo de 2, se salta al tercer campo.

No se si lo he explicado bien y si esa es la duda que tienes.

Saludos,
  #10 (permalink)  
Antiguo 05/06/2005, 02:48
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
No, si el problema es que no escribo 3 dígitos, sino 2. Si en el primer campo tengo 25 y en el segundo 36, y edito el primero, lo que ocurre es que si escribo un 12 (por ejemplo) despacio, me salta al siguiente, pero si lo escribo rápido, me salta dos campos.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:33.