Foros del Web » Programando para Internet » Javascript »

No me funciona la faq nº 37...

Estas en el tema de No me funciona la faq nº 37... en el foro de Javascript en Foros del Web. Hola a todos, me he visto en la situación de implementar en un proyecto la funcionalidad explicada en la FAQ nº 37 ... pero no ...
  #1 (permalink)  
Antiguo 12/01/2006, 20:40
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
No me funciona la faq nº 37...

Hola a todos, me he visto en la situación de implementar en un proyecto la funcionalidad explicada en la FAQ nº 37... pero no consigo que me funcione...

Simplemente creo la función en JavaScript:
Código:
function soloNumeros(){
  var key = window.event.keyCode;
  if (key < 48 || key > 57) window.event.keyCode = 0;
}
y creo un input así:
Código:
<input name="nombre" type="text" onKeyPress="javascript: soloNumeros();">
Mirando en la consola de JavaScript del navegador veo que sale un error: window.event has no properties...

He cambiado ligeramente la función:
Código:
function soloNumeros(e){
  var key = e.keyCode;
  if (key < 48 || key > 57) e.keyCode = 0;
}
y el input:
Código:
<input name="nombre" type="text" onKeyPress="javascript: soloNumeros(event);">
pero me dice: setting a property that has only a getter, pq supongo que no se pueden modificar propiedades de un evento...

La verdad no sé ya que hacer, he visto varios posts de gente que le ha funcionado, incluso con otro código que tb he probado... pero a mi no me funciona

Alguien podria echarme una manita????

Thanks!!
  #2 (permalink)  
Antiguo 13/01/2006, 03:46
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola masterjail

Prueba la FAQ-232 a ver si te sirve.

Saludos,
  #3 (permalink)  
Antiguo 13/01/2006, 04:51
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Esa FAQ también la he probado... pero return patron.test(te) siempre me devuelve false

--------

Ya lo he conseguido, modificando un poco la función:
Código:
function soloNumeros(e){
  key = (document.all) ? e.keyCode : e.which;
  return (((key >= 48)&&(key <= 57))||(key == 8));
}
Quería permitir también la pulsación de la tecla "supr" pero el código que me devuelve és 0, igual que para ESC, por ejemplo, así que tendré que buscar otro truco :P

--------

Ya lo tengo, he añadido (key == 0) ahi arriba para poder usar "supr", "tab" e "intro"...

Última edición por masterjail; 13/01/2006 a las 07:09
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 13:50.