Foros del Web » Programando para Internet » Javascript »

Problema focus()

Estas en el tema de Problema focus() en el foro de Javascript en Foros del Web. Hola, tengo un problema: tengo una funcion que recibe el valor(laid) de su id.Hasta aqui bien. Esa funcion lo que hace, aparte de comprobar si ...
  #1 (permalink)  
Antiguo 15/01/2008, 03:42
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 17 años, 9 meses
Puntos: 0
Problema focus()

Hola, tengo un problema:
tengo una funcion que recibe el valor(laid) de su id.Hasta aqui bien.
Esa funcion lo que hace, aparte de comprobar si es numero o no, es sumar uno al id y luego le hago un focus al siguiente elemento(por eso le sumo 1 al id).
Aquí esta el problema:
Cuando escribo un uno en la caja de texto1,lo que hace es pasar el foco al siguiente(texto2, bien), pero tambien pasa el valor(en este caso el uno) y el text1 se queda sin valor.

Aquí mi codigo:

function compnum(laid)
{
var key=window.event.keyCode;//codigo de tecla.
if (key < 48 || key > 57){//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}
else{
elfocus=parseInt(laid)+1
document.getElementById(elfocus).focus();
}
}


Espero haberme explicado.Un saludo y gracias!!!!
  #2 (permalink)  
Antiguo 15/01/2008, 05:32
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Problema focus()

Poco a poco...
he descubierto que el foco lo pasa bien, pero yo creo que primero pasa el foco y luego muestra lo que se ha tecleado.
Así llamo a a la función:
input2.onkeydown=function(){compnum(this.id);};

SI alguien lo puede ver... es que no lo veo...aggggg


Muchas gracias
  #3 (permalink)  
Antiguo 15/01/2008, 06:23
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Re: Problema focus()

No estoy seguro de que funcione, pero no pierdes nada probando: intentalo con el evento onkeyup en lugar de onkeydown.
__________________
Grupos de Música
Pop Music Stars
  #4 (permalink)  
Antiguo 15/01/2008, 06:59
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Problema focus()

Gracias por la respuesta.

Con el keyup y con el Keydown no hace nada.
solo con el keypress(pero mal).

Vamos a simplificar la pregunta:

¿COMO pasar de un text a otro text automaticamente despues de que el usuario haya PULSADO un numero?

Esto es lo que tengo hasta ahora:

llamada a la funcion:
input2.onkeydown=function(){compnum(this.id);};
//le paso el id actual


function compnum(laid)
{
//recoge bien la id.
var elfocus=laid;
elfocus=parseInt(laid)+1;

document.getElementById(elfocus).focus();

}


Lo que quiero que haga: que ponga el numero en el text1 y se pase al text2.
Lo que hace:Se pasa al text2 y pone el numero en el text2.


Gracias!
  #5 (permalink)  
Antiguo 15/01/2008, 09:10
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Problema focus()

Parece que ya está, os pongo la solucion:

1.- llamo a la funcion advance y le paso el id actual.

input2.onkeyup=function(){advance(this.id);};

2.-

function advance(c){

var elfocus;
elfocus=c;
elfocus=parseInt(c)+1;
currentField=c;
nextField=elfocus;
setTimeout('effect()',1);
}

3.- En la función anterior llamo a la función effect:

function effect(){
if(document.form1[currentField].value.length==1){
document.form1[nextField].focus();}
}


Y listo.

Gracias!
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 00:05.