127

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

这是我的问题。当用户单击Save时,服务器验证 POST 数据(例如检查的产品),如果无效,则将其发送回浏览器。但是,如上所述,即使服务器清除了某些值的选择,由于浏览器缓存,它们仍然可能被选中!

我的数据有不可见的(直到选中父项)复选框,因此用户甚至可能不知道某些先前的值仍然被选中,直到再次单击保存并收到错误消息 - 即使用户认为它不是。这很烦人。

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

4

5 回答 5

206

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

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

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

<form autocomplete="off" ...></form>
于 2010-04-23T14:38:44.097 回答
50

来自堆栈溢出参考

如果浏览器已经保存了该值,则它不适用于 value="" ,因此您应该添加。

对于输入标签,您可以设置属性自动完成:

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

您也可以对表单使用自动完成功能。

于 2013-06-19T08:36:36.770 回答
10

另一种方法是在 HTML 中的表单之后使用 JavaScript 重置表单:

<form id="myForm">
  <input type="text" value="" name="myTextInput" />
</form>

<script type="text/javascript">
  document.getElementById("myForm").reset();
</script>
于 2011-12-08T17:31:56.620 回答
10

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

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

或者

$('#Textfiledid').attr('autocomplete', 'off');
于 2015-07-25T04:27:57.117 回答
7

这在较新的浏览器中对我有用:

autocomplete="new-password"
于 2017-07-24T14:34:41.203 回答