Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2007, 07:18
Avatar de mape367
mape367
 
Fecha de Ingreso: noviembre-2004
Ubicación: CDE, Paraguay
Mensajes: 213
Antigüedad: 19 años, 6 meses
Puntos: 3
Como reconocer event en KeyPress FireFox?

Buenas,

Amigos, tengo una dificultad, les describo el contexto:

- Tengo un campo de texto normal.
Código HTML:
<input name="contr" type="text" id="contr" style="width:150px;" tabindex="6"> 
- Tengo un función Javascript que asigna dinamicamente cierta función a evento onKeyPress de cada objeto del formulario, siempre que no sea tipo hidden, readOnly o disabled en el caso de los select. A continuación dicha función (esta funcion se ejecuta con el evento onLoad de body).
Código HTML:
function asignar()
{
	var forms = new Array('form_incluir','itemes');
	for (z=0; z < forms.length; z++)
	{
		for (i=0; f=ref(forms[z]).elements[i]; i++)
		{
			if ( (typeof f.readOnly == 'undefined' && !f.disabled ) || (f.readOnly != true && f.type != "button" && typeof f.readOnly != 'undefined'))
			{	
				if (f.onkeypress == null) {f.onkeypress = function() {return hEnter(this, event);}}
				if (f.onfocus == null){f.onfocus = function() {foco_in(this);}}
				if (f.onblur == null) {f.onblur  = function() {foco_out(this);}}
			}
		}		
	}
}
- Tengo la función HEnter que se encarga de que al presionar la tecla enter, salte al siguiente campo disponible y tambien filtra el contenido.
Código HTML:
function hEnter (field, event, oN, oK)
{
	var key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	if (key == 13) {
		for (i = 0; i < field.form.elements.length; i++)
		{
			if (field == field.form.elements[i])
				break;
		}
		i = (i + 1) % field.form.elements.length;
		x = field.form.elements[i];
		if ((typeof x.readOnly == 'undefined' && x.disabled ) || (x.readOnly == true && x.type != "button" && typeof x.readOnly != 'undefined') || (typeof x.readOnly != 'undefined' && x.type=='hidden')) 
		{i++;}
		field.form.elements[i].focus();
		return false;
	}
}
En IE funciona correctamente, pero al ejecutarlo en FF, me tira este error (la línea 25 es la que empieza por var key = event.keyCode ? event.keyCode...):
Código HTML:
Error: event has no properties
Archivo de origen: funciones.js		Línea: 25
Como puedo hacer que reconozca el 'event' en FF? La función trabaja correctamente incluso en firefox si le asigno el comportamiento a onKeyPress de forma manual:
Código HTML:
<input name="fecha" type="text" id="fecha" style="width:87px;" tabindex="15"  onKeyPress="return hEnter(this, event);"> 
Podrían ayudarme con esto? por favor.


Desde ya muchas gracias,


Saludos