Foros del Web » Programando para Internet » Javascript »

problema firefox con event

Estas en el tema de problema firefox con event en el foro de Javascript en Foros del Web. Hola, tengo el siguiente código que no funciona con firefox. // acepta solo numeros cualquier campo function mis_datos(){ var key= event.keyCode; if (key < 48 ...
  #1 (permalink)  
Antiguo 08/10/2011, 13:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 105
Antigüedad: 13 años, 8 meses
Puntos: 3
problema firefox con event

Hola, tengo el siguiente código que no funciona con firefox.

// acepta solo numeros cualquier campo
function mis_datos(){
var key= event.keyCode;
if (key < 48 || key > 57){
event.keyCode=0;
}}


Lo cambié a:

// acepta solo numeros cualquier campo
function mis_datos(){
var key= (document.all) ? event.keyCode : event.which;
if (key < 48 || key > 57){
event.keyCode=0;
event.which=0;
}}

y siguen sin funcionar. Alguna idea de mi error?

Saludos
  #2 (permalink)  
Antiguo 08/10/2011, 13:44
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema firefox con event

y como la mandas llamar puedes explicar un poco más

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 08/10/2011, 19:09
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: problema firefox con event

Querrás decir que solo funciona en I.E. mira, seguro llamas a esas funciones desde un elemento html, ejemplo: <input onclick="mis_datos(event)" />

Solamente I.E. puede crear el objeto event desde la misma función, pero eso no es algo estándar, debes enviarlo al llamar la función, tal y como lo he puesto yo y la función esa tendría cierto cambio, sería así:

Código:
function mis_datos(evt){
   var key= evt.keyCode;
   if (key < 48 || key > 57){ 
      event.keyCode=0;
   }
}
evt es solo una variable, puedes ponerle el nombre que quieras. Espero que te sirva.
  #4 (permalink)  
Antiguo 10/10/2011, 16:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 105
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: problema firefox con event

Gracias Artificium, pero sigue funcionado solo en IE, la llamada la tengo asi:
<input
name="Empresa_cp"
type="text"
id="Empresa_cp"
tabindex="10"
onFocus="setStyle(this.id)"
onBlur="setStyle2(this.id)"
size="20"
maxlength="5"
onKeyPress="mis_datos(event)" />

y la función tal como la pusite...

Saludos
  #5 (permalink)  
Antiguo 10/10/2011, 21:03
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 1 mes
Puntos: 26
Respuesta: problema firefox con event

Mira quizas esto te pueda funcionar
http://fgualambo.blogspot.com/2011/09/validar-campo-de-texto-que-solo-permita.html


Código HTML:
Ver original
  1. <script type="text/javascript">
  2.     function prueba(e){
  3.         tecla = e.keyCode || e.which;
  4.         if((tecla>64 && tecla<91)||tecla==192){
  5.            alert("Has pulsado una letra ");
  6.         }
  7.     }
  8.  
  9. <input onkeydown="prueba(event)" type="text">
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #6 (permalink)  
Antiguo 10/10/2011, 21:11
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: problema firefox con event

Ya veo, fui muy ligero al poner esa función, hay dos cosas erradas, la primera, hay un objeto event que no está definido en ninguna parte, luego ese código en la misma línea: event.keyCode=0; eso solo funciona en I.E. como se haría de modo estándar? te daré la función:

Código:
function mis_datos(evt){
   var key= evt.keyCode;
   if (key < 48 || key > 57){ 
      evt.keyCode = 0;
      if (evt.preventDefault()) evt.preventDefault();
   }
}
Espero que te sirva.

Etiquetas: event, firefox, funcion
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 23:10.