Foros del Web » Programando para Internet » Javascript »

Pasar a otro input despues de escribir solo numeros

Estas en el tema de Pasar a otro input despues de escribir solo numeros en el foro de Javascript en Foros del Web. Hola a todos. Tengo una duda al respecto, paso a explicarles. Dentro de un form tengo 3 input (dia, mes año), es decir como se ...
  #1 (permalink)  
Antiguo 09/03/2007, 11:45
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Pasar a otro input despues de escribir solo numeros

Hola a todos.

Tengo una duda al respecto, paso a explicarles.

Dentro de un form tengo 3 input (dia, mes año), es decir como se podria hacer lo siguiente:

1. Que solo me acepte numeros en los tres input (alguna funcion ???) ?
2. Despues de escribir el dia se pase automaticamente al input del mes y despues al año.

Si serian tan amables de ponerme un ejemplo...

Gracias.
  #2 (permalink)  
Antiguo 09/03/2007, 11:51
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Pasar a otro input despues de escribir solo numeros

Hola, lo primero lo puedes hacer mediante expresiones regulares.

Código PHP:
function validar(cadena){
var 
exp = /^[0-9]+$/;
if(!
exp.test(cadena)){
  
alert("Error, introduzca solo numeros");
}

y la llamada seria asi:

<input ... onblur="validar(this.value)" ... >


Que se pase automaticamente, dandole al TAB pasaria de campo a campo.

Saludos
  #3 (permalink)  
Antiguo 09/03/2007, 11:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Pasar a otro input despues de escribir solo numeros

Hola JuanKa

Aquí tienes un ejemplo:

Código:
<html>
<head>
<script type="text/javascript">
function validar(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron = /\d/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
} 
function contar(obj,destino) {
  if (obj.value.length==obj.maxLength) destino.focus();
}
</script>
</head>

<body>
<form onkeypress="return validar(event)">
<input type="text" name="dia" maxlength="2" onkeyup="contar(this,mes)" />
<input type="text" name="mes" maxlength="2" onkeyup="contar(this,anio)" />
<input type="text" name="anio" maxlength="4" onkeyup="contar(this,dia)" />
</body>
</html>
Saludos,
  #4 (permalink)  
Antiguo 09/03/2007, 11:58
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Pasar a otro input despues de escribir solo numeros

aqui tienes otra version para que cambie automaticamente de campo

Código PHP:
function validar(cadena,tipo){
var 
exp = /^[0-9]+$/; 
if(!
exp.test(cadena)){ 
  
alert("Error, introduzca solo numeros"); 

if(
tipo == && cadena.length == 2)
      
document.formulario.mes.focus();
else if(
tipo == && cadena.length == 2)
             
document.formulario.anyo.focus();
                

y el HTML, el name del formulario es: formulario

Código HTML:
<input name="dia" type="text" onkeyup="validar(this.value,0)"/> <br />
<input name="mes" type="text" onkeyup="validar(this.value,1)"/> <br />
<input name="anyo" type="text" onkeyup="validar(this.value,2)"/> <br /> 
Te faltaria por comprobar que el dia introducido es correcto, y que el mes tambien lo es, es deicr estan comprendidos entre 1..31 y 1..12

Saludos
  #5 (permalink)  
Antiguo 09/03/2007, 12:07
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Pasar a otro input despues de escribir solo numeros

Ok.

Gracias a todos ustedes por la rapidez que nos responden.

Lo probare y les contare luego

Saludos
  #6 (permalink)  
Antiguo 09/03/2007, 12:33
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Pasar a otro input despues de escribir solo numeros

Bueno estuve probando el codigo y me va muy bien al momento de ingresar los numeros en sus respectivos input me va correctamente, PERO, cuando edito tanto el dia, mes y año y quiero borra con la tecla de retroceso me sale el error que dice : "Se esperaba un objeto" y me deja escribir letras ??? y no se pasa automaticamente al otro input.

Que puede estar pasando.


Gracias
  #7 (permalink)  
Antiguo 09/03/2007, 19:32
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Pasar a otro input despues de escribir solo numeros

Incorrecto, los script funcionan perfectamente.

Mira la configuracion de tu navegador.

Saludos
  #8 (permalink)  
Antiguo 10/03/2007, 03:12
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Pasar a otro input despues de escribir solo numeros

Hola de nuevo JuanKa

Pon el código que estás usando, a ver si tienes algo mal, porque como dice wigglyUtrera, probé el código antes de contestar y me funcionó bien.

Saludos,
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 04:47.