2011-01-28 62 views
80

Si cambia un menú desplegable y actualiza la página, Firefox parece ignorar el atributo seleccionado.Firefox ignora la opción selected = "selected"

<option selected="selected" value="Test">Test</option> 

Será, de hecho, seleccione la opción que ha seleccionado previamente (antes de la actualización). Esto termina siendo un problema para mí ya que hay un evento desencadenado en el menú desplegable que cambia otras cosas. ¿Hay alguna manera de hacer que Firefox detenga este comportamiento (aparte de disparar otro evento cuando se carga la página)?

Respuesta

4

AFAIK, este comportamiento está codificado en Firefox.

Puede intentar configurar cada elemento de formulario en su defaultValue en la carga de la página.

+1

¿Hay un fácil era hacer esto para todos los elementos dentro de la forma? –

+0

@monkey usando jQuery, debería ser algo como '$ (": input "). Val (this [0] .defaultValue);' (no probado); en JS normal, recorra cada 'document.getElementsByTagname (" select ")' –

+0

Aunque tal vez no sea la solución ideal, esto funciona ... tiene que hacer un control en getAttribute ("selected") –

0

Si cambia la selección y actualiza la página, firefox restaurará sus cambios en el formulario, es por eso que siente que la selección no está funcionando. En lugar de actualizar, intente abrir el enlace en una nueva pestaña.

+0

Esto es cierto, sin embargo, no parece resolver mi problema. Todavía necesito un trabajo completo ya que mi evento onchange no se activa cuando Firefox restaura los cambios en el formulario cuando realizo una actualización. –

2

Puede llamar al .reset() en el formulario antes de actualizar la página.

7

Tuve el mismo problema, créanme que han pasado más de 10 horas luchando con este estúpido comportamiento de Firefox, tengo 7 listas desplegables, cada una de ellas desencadenará un evento y completará 24 entradas ocultas, por lo que puede imaginarse teniendo el opción correcta seleccionada con 24 valores de entrada incorrectos !!! la solución que finalmente encontrado es para restablecer el formulario con Javascript añadiendo esta línea de código:

window.onload = function() { document.forms['MarkerForm'].reset(); }; 

PS: las entradas tienen los valores extraídos de una base de datos, de modo de restablecer la forma no se vacía por cualquier valor, pero de una manera le dice a firefox que vuelva al infierno a la opción seleccionada = seleccionada

+0

Esta es la respuesta correcta. Las respuestas que dicen usar "autocompletar" en un elemento seleccionado son incorrectas porque "autocompletar" NO es un atributo válido para un campo de selección de acuerdo con W3 y causará "Atributo autocompletado no permitido en el elemento seleccionado en este punto". errores en la validación – Scott

208

Agregue autocomplete="off" atributo de HTML a cada etiqueta de selección. (fuente: https://stackoverflow.com/a/8258154/260080)

Esto corrige el comportamiento de ODD en FireFox.

+5

Esta es mi preferencia (muchas gracias Marco y llave inglesa, salvó algunos mechones de mi cabello allí). Y también deberá agregarlo a cada con un atributo "valor" o "marcado" y cualquier