He añadido una función javascript pequeños a mi sitio que tiene la palabra en un controlador de onChange en una lista desplegable de <select>.
function dropdown_change(id){
for (i = 0; i < document.form1.elements.length; i++) {
if (document.form1.elements[i].tabIndex == id.tabIndex+1) {
document.form1.elements[i].focus();
}
}
}
<form name='form1'><select tabindex="1" name="salutation" id="sal" onchange="dropdown_change(this);"><option....
<input type="text" name="nextfield" tabindex="2">
- function dropdown_change(id){
- for (i = 0; i < document.form1.elements.length; i++) {
- if (document.form1.elements[i].tabIndex == id.tabIndex+1) {
- document.form1.elements[i].focus();
- }
- }
- }
- <form name='form1'><select tabindex="1" name="salutation" id="sal" onchange="dropdown_change(this);"><option....
- <input type="text" name="nextfield" tabindex="2">
Como mis tabindexes son precisos y completar los incendios función correctamente y cuando se cambia el saludo a través de ratón el foco saltará a la siguiente tabindex. Mi problema es con IE. Ive encontró que debido a un fallo que IE dispara onchange cuando un evento de botón se activará. En Chrome funciona como debería. Lo necesito para...si el usuario utiliza el mouse y selecciona y el tema que salta al siguiente elemento más si el usuario decide utilizar los botones de teclado arriba y abajo (códigos de 38 y 40) que pueden cambiar la lista desplegable Seleccionar con ellos. Ive intentó envolver la totalidad de bucle en un IF y ELSE instrucción que tal vez dice:
function(){
if keyCodePressed == 40 or 38
do nothing
else
run the for loop, get next tabID and set focus.
}
- function(){
- if keyCodePressed == 40 or 38
- do nothing
- else
- run the for loop, get next tabID and set focus.
- }
Gracias por cualquier ayuda me mostrando cómo combinar los dos eventos.