Обновление браузера

Когда пользователь нажимает Refresh в своем браузере, он перезагружает страницу, но сохраняет содержимое полей формы. Хотя я вижу, что это полезный вариант по умолчанию, он может раздражать некоторые динамические страницы, что приводит к нарушенному пользовательскому опыту.

Есть ли способ в заголовках или эквивалентах HTTP изменить это поведение?

Ответы

Ответ 1

<input autocomplete="off">

Ответ 2

Это должно сделать трюк:

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

Замените FormName именем вашей формы, а затем все поля будут reset, когда пользователь нажмет обновление в своем браузере.

Или, если вы хотите только reset некоторые поля, добавьте это в нижнюю часть страницы:

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

Это будет reset поля каждый раз, когда пользователь входит на страницу, включая обновления

Ответ 3

Добавьте атрибут автозаполнения, который будет отключен, к входам, которые вы не хотите обновлять. Например:

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

см ссылка W3C

хотя не упоминается в ссылке, он также работает с флажками, по крайней мере, на firefox.

Ответ 5

Интересно, если вы установили, что страница не будет кэшироваться через метатеги, это устранит проблему? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html Если это произойдет, это будет полезно для работы с браузером с отключенным Javascript.

Ответ 6

Данные о формах не являются частью спецификации w3c. Это функция браузера, облегчающая вашу жизнь. Поэтому, если вы не хотите сохранять данные после перезагрузки, вы можете установить для всех значений формы значение null после загрузки, как сказал Эспо. Даже если страница не кэширована, она отображает данные в форме, потому что данные не являются частью HTML-страницы страницы. Вы можете попробовать это тоже (не знаю, будет ли это работать):

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