Foros del Web » Programando para Internet » Javascript »

Problema onkeyup

Estas en el tema de Problema onkeyup en el foro de Javascript en Foros del Web. He buscado en el foro y no he encontrado nada al respecto. El caso es que en el evento onkeyup llamo a una funcion asi: ...
  #1 (permalink)  
Antiguo 09/07/2012, 19:20
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Problema onkeyup

He buscado en el foro y no he encontrado nada al respecto.
El caso es que en el evento onkeyup llamo a una funcion asi:

Código Javascript:
Ver original
  1. <input type=text onkeyup="javascript:fun_controlCaja(event, this.id, '123');" />

y quiero que solo acepte numeros la caja de texto.
Para ello la funcion "fun_controlCaja" tiene el siguiente codigo:
Código Javascript:
Ver original
  1. function fun_controlCaja(arg_evento, arg_idCajaTexto, arg_contenidoAceptado){
  2.     var var_codCar;
  3.     var var_patronExpReg;
  4.     var obj_cajaTexto = document.getElementById(arg_idCajaTexto);
  5.    
  6.     if(arg_evento.which){var_codCar = arg_evento.which;}
  7.     else{var_codCar = arg_evento.keyCode;} alert(var_codCar);
  8.  
  9.     if(var_codCar!=8){
  10.         var_codCar = String.fromCharCode(var_codCar);
  11.     alert(var_codCar);
  12.         switch(arg_contenidoAceptado){
  13.             case '123':{ //Solo numeros enteros. (Ej: Num unidades.)
  14.                 var_patronExpReg = /^\d+$/;
  15.                 break;
  16.             }
  17.         }
  18.         if(!var_patronExpReg.test(var_codCar)){
  19.             //Si el caracter es erroneo lo eliminamos de la caja de texto...  
  20.             obj_cajaTexto.value = obj_cajaTexto.value.replace(var_codCar,'');
  21.         }  
  22.     }
  23. }

Pero no funciona el replace porque el evento onkeypress y onkeydown no escriben el caracter tecleado en la caja de texto hasta que no termina la funcion.
Y si lo pongo en el onkeyup resulta que el keyCode para una letra minuscula y mayuscula siempre es el mismo. Es decir, siempre devuelve el codigo de la mayuscula.

¿Que puedo hacer para distinguir mayusculas y minusculas en el onkeyup?
Gracias
  #2 (permalink)  
Antiguo 09/07/2012, 21:02
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Problema onkeyup

@mdromed
Se puede saber que es lo que intentás, ya te respondimos con mucho detalle y código de ejemplo en http://www.forosdelweb.com/f13/no-pi...5/#post4228644
y quiero que solo acepte numeros la caja de texto. ese es el tema, y ya fue respondido, en particular la última script que te deje funciona correctamente en todos los navegadores que la probé
Opera
FF
Chrome
Safari
IE 9/8/7
Ahora te aparecés con esto de las mayúsculas. La solución ya la tenés, pero si lo que te interesa es experimentar, acá tenés para entretenerte
http://www.quirksmode.org/js/keys.html

me auto
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 10/07/2012, 09:05
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Problema onkeyup

Gracias de verdad....
El problema estaba en que llamaba mal a la funcion.
Asi como me habeis dicho si que funciona: onKeypress="event.returnValue = alfa(event);"

Perdonad por las molestias!
Gracias
  #4 (permalink)  
Antiguo 10/07/2012, 09:40
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Problema onkeyup

ohhhh! Lo malo es que en Firefox el "return false" no funciona. Escribe el caracter igualmente aunque no cumpla la expr. regular.

¿Alguna solucion?
  #5 (permalink)  
Antiguo 10/07/2012, 10:06
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Problema onkeyup

Cita:
Iniciado por mdromed Ver Mensaje
ohhhh! Lo malo es que en Firefox el "return false" no funciona. Escribe el caracter igualmente aunque no cumpla la expr. regular.

¿Alguna solucion?
Yo mismo me respondo. Asi funciona en IE, FF, Chrome, Opera y Safari:

Código Javascript:
Ver original
  1. onkeypress="javascript:return fun_controlContenidoCaja(event, this.id, '123');"

Etiquetas: onkeyup
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 21:18.