![]() |
No funciona el window.event en Mozilla FireFox El problema es que tengo una función que acepta solo números decimales que no esta funcionando en FireFox, pero si en IE. La misma es llamada desde: <input size="10" maxlength="10" name="txtMontoPagado" onkeypress="javascript:ValidarNumero(this.name);"> Mi javascript asociado a esto es: function ValidarDecimal(txtCampo) { var ac; var texto = document.forms.item(0).item(txtCampo).value; if (window.event) { ac = window.event.keyCode; if ((ac >= 48) && (ac <= 57) || (ac == 44) || (ac == 46) || (ac == 13) || (ac == 8) || (ac == 9)) { } else { if (ac == 46) { window.event.keyCode = ac - 2; } else { if (ac == 13) { window.lnkIntro.click(); } else { //window.event.keyCode = " "; window.event.returnValue = false; } } //document.forms.item(0).item(txtCampo).value = texto; texto = ""; } } } Me gustaria saber como puedo adaptar este código para que también funcione ne Mozilla Firefox? Desde ya, muchas gracias. Saludos |
Re: No funciona el window.event en Mozilla FireFox |
Re: No funciona el window.event en Mozilla FireFox debes tener en cuenta que firefox no maneja el objeto event implicitamente como lo hace ie, para esto debes enviarselo como parametro de la funcion, una forma es <input size="10" maxlength="10" name="txtMontoPagado" onkeypress="javascript:ValidarNumero(event,this.na me);"> function ValidarDecimal(event,txtCampo) { /*codigo de la funcion*/ } lo segundo es que firefox no maneja la propiedad keycode, sino which, la cual te da el numero de la tecla, pero para hacer mas practico podrias hacer un codigo como el siguiente function teclaEvento(evento){ if (evento.keyCode) return evento.keyCode; else return evento.which; } function continuarEvento(evento,continuar){ if (evento.preventDefault && !continuar){ evento.preventDefault(); evento.stopPropagation(); } return continuar; } function ValidarDecimal(event,txtCampo) { var ac; //no utilizo el name ya tengo la referencia del text var texto = txtCampo.value; ac = teclaEvento(event); if ((ac >= 48) && (ac <= 57) || (ac == 44) || (ac == 46) || (ac == 13) || (ac == 8) || (ac == 9)) { } else { if (ac == 46) { //en fire fox no puedes cambiar el codigo de la tecla //o no lo he visto lo que puedes hacer es cancelar el evento //window.event.keyCode = ac - 2; continuarEvento(event,false) } else { if (ac == 13) { window.lnkIntro.click(); } else { //window.event.keyCode = " "; //esta funcion te garantiza que canceles el evento tanto en ie como en ff return continuarEvento(event,false) } } //document.forms.item(0).item(txtCampo).value = texto; texto = ""; } } } <input size="10" maxlength="10" name="txtMontoPagado" onkeypress="javascript:ValidarNumero(event,this);" > |
Re: No funciona el window.event en Mozilla FireFox Muchas gracias boterogomezalex. Igual te comento que si me funciona reemplazar un evento en FireFox. Realmente haz sido de ayuda. :) |
Re: No funciona el window.event en Mozilla FireFox Cita:
salu2 |
Respuesta: No funciona el window.event en Mozilla FireFox Hola Yo estaba intentando que en mi formulario de login, no se pudiese poner el espacio. En IExplore me funcionaba perfectamente, pero en Firefox como a muchos de vosotros no. Pues dandole vueltas, mirando por san google y con la ayuda de un amigo logré sacarlo. de forma simple y limpia, vamos se ve facil. La función Código HTML: <script language="javascript">Código HTML: <input type="text" maxlength="10" name="usu" size="10" onKeyPress="keypres(event)">Espero ayudar a alguien xD Un saludo |
Respuesta: No funciona el window.event en Mozilla FireFox Buenas, Alguien logro que funcione sin llamar a la función con parámetro, sino añadiendo el evento con window.addEventListener Imagínese que tienen unos cuantos elementos que funcionan diferente y se repiten en varias páginas. Habría que poner onKeyPress="keypres(event)" en cada elemento!!! Ejemplo: html <div id="objetos"> <p id="obj1">obj1</p> <p id="obj2">obj2</p> <p id="obj3">obj3</p > </div> Script: mi_funcion = function() { var lis = document.getElementById("objetos").getElementsByTa gName('p'); for (var i=0; i<lis.length; i++) { lis[i].onmouseover=function() { var id_tag = window.event.srcElement.id; /*Funciona en IE en FireFox NO */ alert('ID: ' + id_tag); } } } if (window.attachEvent){window.attachEvent('onload', mi_funcion);} //IE if (window.addEventListener){window.addEventListener( 'load', mi_funcion, false);} //FOX |
| La zona horaria es GMT -6. Ahora son las 08:47. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.