password off nope new funciona formulario boton atributos atributo html firefox input textbox

html - off - Error con Firefox-Atributo desactivado de entrada no se restablece al actualizar



formulario html (3)

He encontrado lo que creo que es un error con Firefox y me pregunto si esto realmente es un error, así como cualquier solución para esto.

Si crea una página web básica con la siguiente fuente:

<html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> </head> <body> <div> <input id="txtTest" type="text" /> <input type="button" onclick="$(''#txtTest'').attr(''disabled'',''disabled'');" value="Set Disabled (jQuery)" /> <input type="button" onclick="document.getElementById(''txtTest'').disabled = true;" value="Set Disabled (js)" /> <input type="button" onclick="$(''#txtTest'').removeAttr(''disabled'');" value="Remove Disabled" /> </div> </body> </html>

Si disable el textbox dinámicamente y luego actualiza la página, el textbox permanecerá desactivado en lugar de restablecer a su estado original de no desactivado. Lo intenté en IE8 y Chrome, y estos se comportan como era de esperar, reiniciando el textbox a no desactivado cuando actualizo.

Otra información interesante es que todavía hace lo mismo si la entrada es una checkbox de checkbox lugar de un textbox de textbox .


Como se mencionó anteriormente, necesita agregar autocomplete="off" a sus botones.

Aquí hay un fragmento sh + perl para automatizar esto en el caso de <button> s en sus archivos / plantillas HTML (bajo algunas suposiciones):

find /path/to/html/templates -type f -name ''*.html'' -exec perl -pi -e / ''s/(?<=<button )(.*?)(?=>)/@{[(index($1,"autocomplete=")!=-1?"$1":"$1 autocomplete=/"off/"")]}/g'' / {} +

Las suposiciones son:

  • Las etiquetas <button> apertura comienzan y terminan en la misma línea. Si este no es el caso (es decir, podrían dividirse en varias líneas), reemplazar /g con /gs debería ser de ayuda (el modificador s causa que coincida con las líneas nuevas también)

  • HTML válido (p. Ej., No hay caracteres divertidos entre < y > ) y ningún resto mayor de ( > ) dentro de la etiqueta de apertura.


Esta es una "característica" de Firefox que recuerda los valores de entrada del formulario a través de actualizaciones de página. Para corregir este comportamiento, simplemente configure autocomplete="off" en el formulario que contiene las entradas, o simplemente directamente a la entrada.

Esto evita que el autocompletado funcione y evita que el navegador recuerde el estado de los campos de entrada.

De forma alternativa, puede simplemente "actualizar duro" haciendo clic en CTRL + F5. Esto restablecerá completamente la página actual.


Para lidiar con el botón Atrás, haz esto (desde here )

window.addEventListener(''pageshow'', PageShowHandler, false); window.addEventListener(''unload'', UnloadHandler, false); function PageShowHandler() { window.addEventListener(''unload'', UnloadHandler, false); } function UnloadHandler() { //enable button here window.removeEventListener(''unload'', UnloadHandler, false); }