Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2012, 19:20
Avatar de mdromed
mdromed
 
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 15 años, 3 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