Safari и Chrome изменяют данные формы на кнопке «Назад»

Я получаю эту странную проблему в Safari и Chrome (работает в Firefox и IE).

  1. Я начинаю с этого списка флажков, в котором отмечен первый элемент «A», а элементы «B» и «C» не отмечены.
  2. Затем я перехожу на другую страницу, которая упорядочивает элементы, которые отображаются в списке флажков.
  3. Я меняю порядок элементов в списке, теперь он идет «B», «A», «C».
  4. Я нажимаю кнопку назад
  5. Страница повторно загружается с сервера (у меня отключено кеширование), я проверяю ответ, отправленный с сервера, и элемент «А» все еще проверяется и больше не является первым элементом в списке.
  6. !!!Странное поведение!!! Страница загрузилась в браузере с новым порядком «B», «A», «C», но «A» не отмечен, вместо этого отмечен первый элемент «B».

Почему-то получается, что позиция галочки восстановилась по нажатию кнопки назад, а данные формы, отправленные с сервера, были отброшены.

Когда я обновляю страницу, порядок «B», «A», «C» и элемент «A» теперь отмечены, и все выглядит нормально.

В обоих случаях для страницы IsPostBack установлено значение false.

Это ошибка в веб-ките?

Пробовал, чистил кеш, заходил в приватный режим, чистил историю. Все то же поведение.


person Ian    schedule 12.08.2009    source источник
comment
Я думаю, это не должно быть помечено как C#.   -  person cburgmer    schedule 10.01.2012


Ответы (2)


У нас была похожая проблема с «восстановлением» данных формы с помощью Webkit, хотя состояние страницы за это время изменилось.

Аналогичный пост Изменения кнопки "Назад" в Safari и Chrome скрытые и отправленные значения в формах дали хороший совет, который сработал для нас. Добавив autocomplete="off" ко всем формам на странице, мы могли решить эту проблему.

person cburgmer    schedule 10.01.2012
comment
О Боже, ты спас мне жизнь! Я два дня ломал голову, пока не нашел это решение для автозаполнения! У меня была некоторая форма поиска на странице, которая возвращала дерзкие данные формы при нажатии кнопки «Назад» в Safari и Google Chrome. Удивительно, но IE отлично работал при нажатии кнопки «Назад». Так что еще раз спасибо за это. - person Bounce; 14.09.2012

См. этот пример:

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

Это происходит и со мной. Это кажется довольно фундаментальным недостатком, поскольку вариант использования настолько прост и, скорее всего, распространен. Я уже столкнулся с этой проблемой в двух местах в разных проектах. Если отключение сеанса на самом деле позволяет избежать этой проблемы, это не является настоящим исправлением, так как большинство клиентов даже не узнают об этом параметре или не позаботятся об этом.

person Galen    schedule 28.01.2011