En la maquetación de la página que me han pasado hay un evento "onchange" en una lista desplegable (select) para enviar el formulario al servidor.
Utilizando el ratón no hay problema. Pulsas en la lista, seleccionas el elemento que deseas, y se envía el formulario al servidor. Pero si utilizamos el teclado, nos encontraremos con un problema en navegadores como Internet Explorer u Opera: al tratar de seleccionar un elemento de la lista con los cursores del teclado, el formulario se envía una vez en cada pulsación. Es decir, si tenemos 5 elementos en la lista, inicialmente tenemos seleccionado el 1 y queremos ir al elemento 5, tenemos que pulsar 4 veces el cursor y el formulario se enviará cuatro veces, con la inaceptable molestia que eso supone.
¿Cómo solucionarlo?
La primera opción que se me ocurre es quitar cualquier tipo de evento y añadir un botón para el envío del formulario. Solución que tomaremos aquí.
La segunda opción es utilizar código javascript que lidie el error, tal y como explican en The Man in Blue.



Hola,
Llegué aquí buscando la manera de enviar automáticamente un formulario, con onchange puesto que tenía el código pero me daba error.
Comento la solución por si a alguien le llegase a servir.
Si el formulario ha de enviarse automáticamente al cambiar en una lista, en esta no debe haber botón de envío... De la manera que puede haber, es haciendo la llamada document.formulario.submit(); fuera de él.
Hay veces errores tan insignificantes nos hacen liarnos, pero bueno que gusto da cuando solucionamos el problema.
Saludos =)