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