Foros del Web » Programando para Internet » Javascript »

Problema numeros IE

Estas en el tema de Problema numeros IE en el foro de Javascript en Foros del Web. Tengo mi script para que sólo se puedan meter números en un campo. En firefox funciona perfectamente pero en IE no va... lo llamo así. ...
  #1 (permalink)  
Antiguo 24/06/2010, 05:28
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Problema numeros IE

Tengo mi script para que sólo se puedan meter números en un campo. En firefox funciona perfectamente pero en IE no va...

lo llamo así.

onKeyPress="return numeros(event)"

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.  
  3.  
  4.  
  5. <!--
  6.  
  7. var nav4 = window.Event ? true : false;
  8.  
  9. function numeros(evt){
  10.  
  11. // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
  12.  
  13. var key = nav4 ? evt.which : evt.keyCode;
  14.  
  15. return (key <= 32 || (key >= 48 && key <= 59));
  16.  
  17. }
  18.  
  19. //-->
  20.  
  21. </script>
  #2 (permalink)  
Antiguo 24/06/2010, 05:52
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Problema numeros IE

SOLUCIÖN:

function solonumeros(e)
{

var key;

if(window.event) // IE
{
key = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
key = e.which;
}

if (key < 48 || key > 57)
{
return false;
}

return true;
}

Y la llamada sería:

onkeypress="javascript:return solonumeros(event)"
  #3 (permalink)  
Antiguo 24/06/2010, 06:20
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Problema numeros IE

¿Por qué te complicas así la vida? Puedes usar isNaN(), que es mucho más fácil, o un método menos ortodoxo podría ser if(texto.toUpperCase()==texto.toLowerCase()).
Saludos (:

Etiquetas: numeros
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 17:25.