Encontré lo que creo que es un error con Firefox y me pregunto si realmente es un error, así como alguna 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
la textbox
dinámica y actualice la página, el textbox
permanecerá desactivado lugar de restaurarlo a su estado original de no discapacitados. Probé esto en IE8 y Chrome y se comportan como era de esperar, restableciendo eltextbox
posterior a no deshabilitada cuando actualizo.
Otro dato interesante es que todavía hace lo mismo si la entrada es a en checkbox
lugar de a textbox
.
input
elementos cuando simplemente actualizas?autocomplete="off"
. Esta publicación de blog me resulta familiar, así que definitivamente me he encontrado con esto antes. Deberías escribir una respuesta a tu propia pregunta (¿o debería hacerlo yo?)Respuestas:
Esta es una "característica" de Firefox que recuerda los valores de entrada del formulario en las actualizaciones de la página. Para corregir este comportamiento, simplemente establezca
autocomplete="off"
en el formulario que contiene las entradas, o simplemente directamente en la entrada.Esto evita que la función de autocompletar funcione y evita que el navegador recuerde el estado de los campos de entrada.
Alternativamente, puede simplemente "actualizar" haciendo clic en CTRL + F5. Esto restablecerá completamente la página actual.
fuente
autocomplete="off"
que no funciona en ese caso.Para lidiar con el botón de retroceso, haga esto (desde aquí )
fuente
//enable button here
aquí es redundante; Mi comprensión de los documentos referidos es que simplemente la presencia del detector de eventos evitará que la página se almacene en BFcache.Como se mencionó anteriormente, debe agregar
autocomplete="off"
a sus botones.Aquí hay un fragmento de código
sh
+perl
para automatizar esto en el caso de<button>
s en sus archivos / plantillas HTML (bajo algunas suposiciones):Los supuestos son:
Las
<button>
etiquetas de apertura comienzan y terminan en la misma línea. Si este no es el caso (es decir, pueden estar divididos en varias líneas), reemplazar/g
con/gs
debería ayudar (els
modificador también hace.
coincidir las nuevas líneas)HTML válido (p. Ej., No hay caracteres divertidos entre
<
y>
) ni mayor que (>
) sin escape dentro de la etiqueta de apertura.fuente
De hecho, este es un error abierto en Firefox. También hay una nota en MDN:
autocomplete
(desplácese hacia abajo hasta el segundo cuadro amarillo):Si está utilizando Bootstrap, es posible que le interese la
fuente