2008-09-09 17 views
14

Cuando un usuario accede a Refrescar en su navegador, vuelve a cargar la página pero mantiene el contenido de los campos del formulario. Si bien puedo ver que esto es un valor predeterminado útil, puede ser molesto en algunas páginas dinámicas, lo que lleva a una experiencia de usuario quebrada.Comportamiento de actualización del navegador

¿Hay alguna manera, en encabezados HTTP o equivalentes, de cambiar este comportamiento?

+0

Antes de hacer esto, porque hay que tener cuidado al suponer que todo el mundo va a querer borrar los formularios, porque personalmente, me gusta que los datos del formulario estén disponibles durante el retroceso/avance. ¡Los navegadores tardaron mucho tiempo en hacer esto y odiaría que desapareciera! –

+0

No se preocupe, no estoy deshabilitando esto para todas las formas, solo en los pocos casos donde la suposición no tiene sentido. –

Respuesta

30
<input autocomplete="off"> 
+1

¿funciona para botones de radio? –

+1

funciona para botones de radio – James

+0

funciona solo para HTML5 – assaqqaf

0

Me pregunto, si se establece la página no sea almacenado localmente a través de las etiquetas meta, habrá que solucionar el problema? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html Si lo hace, tendrá el beneficio de trabajar en el navegador con el Javascript desactivado.

+0

En realidad, necesito Javascript para todo tipo de otros bits de la página. –

6

Esto debe hacer el truco:

<body onload="document.FormName.reset();"> 

Reemplazar FormName con el nombre de su forma y entonces todos los campos se restablece cuando el usuario hace clic refrescar en su navegador.

o si sólo desea restablecer algunos campos, añadir esto a la parte inferior de la página:

<script type="text/javascript"> 
    document.getElementById('field1').value =''; 
    document.getElementById('field2').value =''; 
    document.getElementById('field3').value =''; 
</script> 

Que se restablecerá los campos cada vez que un usuario entra a la página, incluyendo refresca

0

El los datos en los formularios no son parte de la especificación w3c. Es una función del navegador para hacerte la vida más fácil. Por lo tanto, si no desea conservar los datos después de las recargas, puede establecer que todos los valores del formulario sean nulos después de cargarlos, como dijo Espo. Incluso si la página no está en caché, mostrará los datos en el formulario, porque los datos no son parte del código html de la página. Puede probar esto también (no sé si funcionará):

<input type="text" name="foo" value=""> 
3

Añadir el atributo autocomplete establecido en "off" a las entradas que no desea ser renovado. Por ejemplo:

<input type="text" name="pin" autocomplete="off" /> 

ver the W3C reference

aunque no se menciona en la referencia, funciona también con casillas de verificación, al menos en Firefox.

Cuestiones relacionadas