Сделать страницу, чтобы указать браузеру не кэшировать/сохранять входные значения

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

Вот моя проблема. Когда пользователь нажимает кнопку "Сохранить", сервер проверяет данные POSTed (например, проверенные продукты), а если он недействителен, он отправляется обратно в браузер. Однако, как указано выше, даже если сервер очищает выбор для некоторых значений, они все равно могут быть выбраны из-за кеша браузера! Мои данные имеют невидимые (до выбора родительского элемента) флажки, поэтому пользователь может даже не знать, что какое-то предыдущее значение все еще выбрано, до тех пор, пока не щелкнет "Сохранить снова" и не получит сообщение об ошибке - даже если пользователь этого не считает. Что раздражает.

Это можно решить, выполнив Ctrl-F5, но это даже не решение. Есть ли автоматический/программный способ сообщить браузеру не кэшировать входные данные формы на какой-либо форме/странице?

Ответ 1

Вы явно устанавливаете значения как пустые? Например:

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

Это должно помешать браузерам помещать данные туда, где они не должны. Кроме того, вы можете добавить атрибут autocomplete в тег формы:

<form autocomplete="off" ...></form>

Ответ 2

из fooobar.com/questions/18066/...

он не работал со значением = "", если браузер уже сохранил значение, поэтому вы должны добавить

Для входного тега есть автозаполнение атрибута, которое вы можете установить:

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

Вы также можете использовать автозаполнение формы.

Ответ 3

другой подход состоял бы в reset форме с использованием JavaScript сразу после формы в HTML.

<form id="myForm">
  <input type="text" value="" name="myTextInput" />
</form>
<script type="text/javascript">
  document.getElementById("myForm").reset();
</script>

Ответ 4

В принципе, есть два способа очистки кеша:

<form autocomplete="off"></form> 

или

$('#Textfiledid').attr('autocomplete','off');

`

Ответ 5

поздно добавить, но это сработало для меня в новых браузерах:

автозаполнение = "новый пароль"