24/07/2008, 11:15
|
| | Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 17 años, 7 meses Puntos: 0 | |
Respuesta: cambiar foco al presionar tecla enter Hola, creo q es algo tarde la respuesta pero hasta hoy retomo mi actividad en ese foro.
Yo utilizo mucho la tecla enter para moverme entre los campos de mis formularios o para ejecutar algún tipo de función.
Lo q hice xa q me funcione es lo siguiente, me conseguí una funcion en Javascript por internet a la cual le hice unos pequeños ajustes y llame Enter
function Enter(Evento, Campo)
{
var keyCode = Evento.keyCode ? Evento.keyCode : Evento.which ? Evento.which : Evento.charCode;
if (keyCode == 13)
{
var i;
for (i = 0; i < Campo.form.elements.length; i++)
if (Campo == Campo.form.elements[i])
break;
i = Campo.form.elements[i].tabIndex + 1;
for( j = 0 ; j < Campo.form.elements.length; j++)
{
if( Campo.form.elements[j].tabIndex == i)
break;
}
Campo.form.elements[j].focus();
return false;
}
else
return true;
}
Con esta función lo primero q se hace es validar el evento xa saber si se presionó la tecla enter, luego se recorren los elementos del formulario xa saber sobre cual estoy posicionado, como puede suceder que el orden de creación de los elementos no sea el mismo que el del tabindex, se recorre nuevamente los elementos xa saber cual tiene el siguiente tabindex y se ubica el foco sobre este.
No se si exista alguna función más simple pero esta solucionó mis problemas del momento y es la q uso actualimente.
Lo q debes hacer es hacer el llamado de la función en el evento onKeypress del campo deseado y tener organizado el tabindex de todos los campos.
Lo otro q puedes haces es modificar el código de la función Enter para que cuando detecte q se presiono enter ejecute el submit o la funcion q desees ejecutar.
Espero haberte podido ayudar en algo, disculpa lo tarde de la respuesta. |