firefox - online - ¿Por qué se mantiene marcada la casilla al volver a cargar la página?
firefox quantum español (8)
$ ("# showimage"). prop ("verificado", falso);
Estoy recargando una página web que tiene el siguiente código:
<label for="showimage">Show Image</label>
<input id="showimage" name="showimage" type="checkbox" value="1" />
Aunque el HTML se mantiene enviado al navegador es el mismo para cada recarga de la página, la casilla de verificación siempre toma el valor comprobado cuando se realizó una recarga. En otras palabras, si el usuario marca la casilla de verificación y vuelve a cargar, la casilla de verificación todavía está marcada.
¿Hay algo de almacenamiento en caché aquí?
Editar : Probé la solución de Gordon Bell a continuación y descubro que esto todavía está sucediendo incluso después de eliminar el valor = "1". ¿Algo más que pueda estar perdiendo?
<label for="showimage">Show Image</label>
<input id="showimage" name="showimage" type="checkbox" />
Agregue autocomplete="off"
en el elemento de formulario en la página. La desventaja es que no es XHTML válido, pero soluciona el problema sin javascript intrincado.
Es una buena característica de Firefox: si escribe algo pero vuelve a cargar la página, el texto permanece en el área de texto. Idem para otros ajustes que haya elegido.
Por desgracia, no funciona en SO (probablemente reiniciado por JS) y navegadores más burdos como IE ...
Lo que sugiere una solución: si realmente necesita hacer eso, reinicie el formulario con JS. form.reset () puede hacer el trabajo (actúa como el botón de reinicio).
Podría deberse a un almacenamiento en caché del navegador, muy útil para sitios web estáticos que no se cambian con demasiada frecuencia, lo que es muy malo para las aplicaciones web dinámicas.
Pruebe con esas dos etiquetas meta en la sección principal de la página. La segunda metaetiqueta es para navegadores más antiguos (IE5) que no reconocen la metaetiqueta "sin memoria caché" y aunque diferente produce el mismo resultado: cada solicitud va al servidor.
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1">
Sí, creo que está almacenando en caché. Veo este comportamiento en Firefox por ejemplo (no Safari, por lo que vale :)).
puedes volver a cargar la página y omitir la caché (en Firefox) usando CTRL - SHIFT - R y verás que el valor de verificación no se transfiere (una CTRL - R normal tomará la información de la memoria caché)
editar : pude desactivar este lado del servidor en Firefox, estableciendo un encabezado de control de caché:
Cache-Control: no-store
esto parece desactivar la función "recordar valores de formulario" de Firefox
establecer autocompletar = "off" con js también está funcionando bien.
por ejemplo usando jquery:
$(":checkbox").attr("autocomplete", "off");
la idea pública para resolver eso
make form & reset button
<form>
<checkbox>
<reset>
</form>
$(reset).trigger("click");//to clear the cache and input
$(checkbox).trigger("click");//to mark checkbox
o en lugar de f5 presione enter en la barra de direcciones :)