Ответ 1
<input autocomplete="off">
Когда пользователь нажимает Refresh в своем браузере, он перезагружает страницу, но сохраняет содержимое полей формы. Хотя я вижу, что это полезный вариант по умолчанию, он может раздражать некоторые динамические страницы, что приводит к нарушенному пользовательскому опыту.
Есть ли способ в заголовках или эквивалентах HTTP изменить это поведение?
<input autocomplete="off">
Это должно сделать трюк:
<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 поля каждый раз, когда пользователь входит на страницу, включая обновления
Добавьте атрибут автозаполнения, который будет отключен, к входам, которые вы не хотите обновлять. Например:
<input type="text" name="pin" autocomplete="off" />
см ссылка W3C
хотя не упоминается в ссылке, он также работает с флажками, по крайней мере, на firefox.
Вы можете вызвать метод reset() объекта forms из события загрузки тела вашего html-документа, чтобы очистить формы.
h1. Ссылки
Интересно, если вы установили, что страница не будет кэшироваться через метатеги, это устранит проблему? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html Если это произойдет, это будет полезно для работы с браузером с отключенным Javascript.
Данные о формах не являются частью спецификации w3c. Это функция браузера, облегчающая вашу жизнь. Поэтому, если вы не хотите сохранять данные после перезагрузки, вы можете установить для всех значений формы значение null после загрузки, как сказал Эспо. Даже если страница не кэширована, она отображает данные в форме, потому что данные не являются частью HTML-страницы страницы. Вы можете попробовать это тоже (не знаю, будет ли это работать):
<input type="text" name="foo" value="">