IE будет автоматически сохранять содержимое формы при нажатии кнопки "Назад", пока:
- вы не нарушили кэширование с помощью прагмы no-cache или аналогичной
- рассматриваемые поля формы не создавались динамически скриптом
Кажется, у вас в руках кеширование, так что я полагаю, что последнее применимо. (Как говорит mkoeller, Firefox избегает этой проблемы, если страница находится в нескольких последних щелчках назад, поддерживая саму страницу дольше, чем на экране. Однако это необязательно, и Firefox вернется к тому же поведению, что и IE и другие. браузеры, как только вы просмотрели несколько страниц вперед и у них истек срок действия старой.)
Если вы создаете свои собственные поля формы из скрипта при загрузке, то браузер не может знать, что новый элемент управления вводом «совпадает» со старым экземпляром, поэтому он не может заполнить его ранее представленное значение. В этом случае, если вы хотите, чтобы он хорошо работал с кнопкой «назад», вы должны начать сохранять данные на клиенте.
Затем вы должны использовать какую-то кодировку состояния, чтобы каждый набор данных был привязан ровно к одному экземпляру страницы, иначе проходил бы через несколько экземпляров одной и той же формы или одновременно открывал две вкладки браузера в форме сильно запутает ваш сценарий.
И , затем вы начинаете собирать много данных, если они большие формы, и если механизм хранения на стороне клиента, который вы используете, это куки, вы также можете начать терять данные как отправка множества ненужных бессмысленных состояний с каждым HTTP-запросом. Доступны другие механизмы хранения на стороне клиента, но они зависят от браузера.
Короче говоря: правильно создавать динамически генерируемые формы - это огромная боль, и, вероятно, ее лучше избегать, если вы можете. Наличие скрытой формы на странице, которую сценарий делает видимой, что позволяет браузерам выполнять магию запоминания полей вместо того, чтобы давать вам задачу, как правило, гораздо проще.