Foros del Web » Programando para Internet » Javascript »

Cambiar Variable automaticamente mientras se escribe

Estas en el tema de Cambiar Variable automaticamente mientras se escribe en el foro de Javascript en Foros del Web. Hola amigos capos de Javascript!! Tengo una consulta: ¿Cómo sería una función que me modifique automáticamente el valor de una variable mientras escribo en su ...
  #1 (permalink)  
Antiguo 02/03/2008, 21:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Cambiar Variable automaticamente mientras se escribe

Hola amigos capos de Javascript!!

Tengo una consulta:

¿Cómo sería una función que me modifique automáticamente el valor de una variable mientras escribo en su referencia?

Me explico.
Existe la función Onchange() que cambia el valor de la variable apenas nota que ha cambiado pero no a medida que va cambiando. Y la forma que tiene para saber que la variable ha cambiado es porque uno hace click en otro lado.

¿Es posible una función que vaya tomando lo que uno tipea automáticamente y no esperar que uno termine de escribir o marque por otro lado?

Saludos
  #2 (permalink)  
Antiguo 02/03/2008, 22:20
Iak
 
Fecha de Ingreso: septiembre-2007
Ubicación: Prescott
Mensajes: 26
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Cambiar Variable automaticamente mientras se escribe

Prueba con: onkeypress

Saludos!

Iak
  #3 (permalink)  
Antiguo 03/03/2008, 00:56
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 4 meses
Puntos: 24
Re: Cambiar Variable automaticamente mientras se escribe

Yo en lugar de onkeypress usaría onkeyup porque puedes realizar la consulta después de que la variable haya cambiado.
Puedes ver un ejemplo en ésta página que tengo para intercambio de enlaces.
Observa como cambia el valor de "count" al escribir en la caja de texto de su derecha.
__________________
Grupos de Música
Pop Music Stars
  #4 (permalink)  
Antiguo 03/03/2008, 03:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Cambiar Variable automaticamente mientras se escribe

MUCHAS GRACIAS A AMBOS.-

Realmente no he dado con la función que preguntaba pero con la que ustedes me dieron hice una modificación y el formulario me quedó perfecto. Ahora sólo se puede tipear NUMEROS en los casilleros.

Aquí la función para quien la quiera implementar.

Código PHP:
<html>
<
body>
<
script type="text/javascript">
function 
noNumbers(e)
{
var 
keynum;
var 
keychar;
var 
numcheck;if(window.event// IE
  
{
  
keynum e.keyCode;
  }
else if(
e.which// Netscape/Firefox/Opera
  
{
  
keynum e.which;
  }
keychar String.fromCharCode(keynum);
numcheck = /d/;
return !
numcheck.test(keychar);
}
</script><form>
<input type="text" onkeypress="return noNumbers(event)" />
</form></html> 

Ojo!! que esta función evitará al USUARIO tipear NUMEROS pero si modifican
return !numcheck.test(keychar);

a esto:
return numcheck.test(keychar);

Les queda funcionando para que sólo se TIPEE NUMEROS.

Gracias nuevamente.
  #5 (permalink)  
Antiguo 20/03/2008, 10:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 14
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Cambiar Variable automaticamente mientras se escribe

Hay un problema al permitir sólo números, ya que cuando deseas borrar (backspace) el script no te lo permite.

Cómo solucionar eso?
  #6 (permalink)  
Antiguo 20/03/2008, 10:43
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 4 meses
Puntos: 24
Re: Cambiar Variable automaticamente mientras se escribe

Cita:
Iniciado por mogwai Ver Mensaje
Hay un problema al permitir sólo números, ya que cuando deseas borrar (backspace) el script no te lo permite.

Cómo solucionar eso?
No lo he probado, pero supongo que bastaría con añadir los códigos del "backspace" (\x08) y del "delete" (\x7F) en la expresión regular.
Es decir, en lugar de
Código:
numcheck = /d/;
Creo que habría que usar:
Código:
numcheck = /[0-9\x08\x7F]/;
__________________
Grupos de Música
Pop Music Stars
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:06.