Ошибка кнопки «Назад» в Chrome / Safari - PullRequest
4 голосов
/ 28 января 2011

Я пытался найти обходной путь к ошибке кнопки «Назад» в Safari / Chrome (браузер помещает поддельные данные в поля, к которым они не принадлежат).Мне не повезло, и похоже, что к этому времени должно быть хорошее решение (я вижу сообщения об этом, начиная с 2009 года, но нет хорошего решения).

В этом примере: http://jsfiddle.net/eGutT/13/

вы видите, что все нормально при начальной загрузке страницы.Однако после нажатия ссылки, а затем нажатия кнопки «Назад» в браузере значения передаются в неправильные поля.Пожалуйста, используйте Safari или Chrome для тестирования.На Firefox работает нормально.

Это очень серьезная проблема, особенно когда:

  1. Пользователь нажимает кнопку "Назад", и эта ошибка возникает
  2. Пользователь не замечаетподдельные данные
  3. Пользователь вносит несвязанные изменения в форму (в другом незатронутом поле)
  4. Пользователь отправляет форму

Теперь у вас возникла ситуация, когда поддельные данные передаются в базу данных!!

Кстати, эта проблема может быть связана с jQuery, поскольку, если вы раскомментируете эту строку в примере:

updateRowNums();  // IF YOU COMMENT OUT THIS LINE...

, дополнительные / поддельные данные не будут введены.

Спасибо, Гален

1 Ответ

0 голосов
/ 28 января 2011

Вы говорите о 0, 1 и 2? Потому что ваша функция updateRowNums автоматически форсирует эти значения. Если вы хотите сохранить этот первый столбец, вы можете изменить updateRowNums на что-то вроде этого:

if (!$('#some_id').val()) { $('#some_id').val(x); }

(Очевидно, это не самый эффективный код, но он сбрасывает поле, если значение не указано).

Однако, если это не , о котором вы говорите, тогда я не смогу воспроизвести вашу проблему. Я использую Chrome 9.0.597.83, и он сохранил все нужные данные во всех нужных местах.

...