使页面告诉浏览器不要缓存/保留输入值

时间:2010-04-23 14:21:56

标签: html browser html-form browser-cache

大多数浏览器缓存形成输入值。因此,当用户刷新页面时,输入具有相同的值。

这是我的问题。当用户单击“保存”时,服务器将验证POSTed数据(例如已检查的产品),如果无效,则将其发送回浏览器。但是,如上所述,即使服务器清除某些值的选择,由于浏览器缓存,它们仍可能被选中!我的数据不可见(直到选中父项)复选框,因此用户可能甚至不知道仍然选择了某些先前的值,直到再次单击“保存”并收到错误消息 - 即使用户认为不是。这很烦人。

这可以通过Ctrl-F5解决,但它甚至不是解决方案。是否有一种自动/编程方式告诉浏览器不要在某个表单/页面上缓存表单输入数据?

5 个答案:

答案 0 :(得分:179)

您是否明确将值设置为空白?例如:

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

这应该会阻止浏览器将数据放在不应该的位置。或者,您可以将autocomplete属性添加到表单标记:

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

答案 1 :(得分:40)

来自stackoverflow reference

如果浏览器已经保存了值,那么它就无法使用value =“”,因此您应该添加

对于输入标记,可以设置属性autocomplete:

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

您也可以为表单使用自动填充功能。

答案 2 :(得分:8)

另一种方法是在HTML中的表单后立即使用JavaScript重置表单。

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

答案 3 :(得分:6)

迟到了,但这对我来说适用于较新的浏览器:

自动填充= “新密码”

答案 4 :(得分:5)

基本上,有两种方法可以清除缓存:

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

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

`