2009-08-12 9 views
7

Obtengo este extraño problema en Safari & Chrome (funciona en Firefox y IE).Safari y Chrome modificando los datos del formulario en el botón Atrás

  1. que empezar con esta lista casilla de verificación que tiene el primer punto 'A' está marcada, y el punto 'B' y 'C' sin control
  2. entonces puedo navegar a otra página que ordena los elementos que aparecen en el lista casilla
  3. puedo cambiar el orden de los elementos de la lista por lo que ahora va 'B', 'A', 'C'
  4. pulsar el botón de retroceso
  5. la página se vuelve a recoger del servidor (Tengo el almacenamiento en caché desactivado), verifico la respuesta enviada desde el servidor, y el ítem 'A' todavía está marcado y ya no es el primer ítem en la lista.
  6. !!! Weird Behavior !!! La página se ha cargado en el navegador con el nuevo orden 'B', 'A', 'C', pero 'A' no está marcado, en su lugar, el primer elemento 'B' está marcado.

De alguna manera parece que la posición del elemento de verificación se ha restaurado presionando el botón Atrás, y los datos de formulario han sido descartados y enviados desde el servidor.

Cuando actualizo la página, la orden es 'B', 'A', 'C' y el elemento 'A' está ahora marcado, y todo se ve bien.

En ambas ocasiones, la página tiene IsPostBack establecido en falso.

¿Este es un error en el kit web?

Intentó, borrando la caché, entrando en el modo de navegación privada, borrando el historial. Todavía el mismo comportamiento.

+0

Eso no debería etiquetarse como C#, supongo. – cburgmer

Respuesta

4

Encontré el mismo problema con Chrome. En posteriores pruebas, descubrí que solo sucede si el sitio web usa sesiones. Cada vez que presiona el botón Atrás, elimina los datos de publicación en lugar de volver a publicarlos.

Creé una página para probarlo: http://www.duanehutchins.com/formtest.php Si escribe algo de información y lo publica algunas veces, funciona. Luego presione hacia atrás y vuelva a cargar; no se publican datos

Si deshabilito la sesión, funciona bien. Informé el error a Chrome. Veremos si alguien ayuda.

0

ver este ejemplo:

http://jsfiddle.net/eGutT/9/

Esto está sucediendo a mí también. Esto parece una falla bastante fundamental ya que el caso de uso es tan simple, y muy común. Ya me encontré con este problema en dos lugares en diferentes proyectos. Si la desactivación de la sesión realmente evita este problema, no es una solución real, ya que la mayoría de los clientes ni siquiera sabrá sobre esta opción, o le importará.

4

Tuvimos un problema similar con los datos del formulario que fueron "restaurados" por Webkit, aunque el estado de la página cambió mientras tanto.

Publicación similar Safari and Chrome back button changes hidden and submit values in forms dio una buena pista que funcionó para nosotros. Al agregar autocomplete="off" a todas las formas en la página podríamos resolver esto.

+0

¡Dios mío, me salvaste la vida! ¡Me he estado golpeando la cabeza durante dos días hasta que encontré esta solución de autocompletar! Tenía un formulario de búsqueda en la página que me devolvía los datos del formulario descartable al hacer clic en el botón Atrás en Safari y Google Chrome. Sorprendentemente, el IE funcionó perfectamente bien al hacer clic en el botón Atrás. Así que gracias de nuevo por esto. – Bounce

Cuestiones relacionadas