Foros del Web » Programando para Internet » Javascript »

Como reconocer event en KeyPress FireFox?

Estas en el tema de Como reconocer event en KeyPress FireFox? en el foro de Javascript en Foros del Web. 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" ...
  #1 (permalink)  
Antiguo 08/02/2007, 07:18
Avatar de mape367  
Fecha de Ingreso: noviembre-2004
Ubicación: CDE, Paraguay
Mensajes: 213
Antigüedad: 19 años, 5 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
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 16:13.