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

que*_*en3 110 html browser forms browser-cache

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

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

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

Dis*_*oat 187

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

<input type="text" name="textfield" value="">
Run Code Online (Sandbox Code Playgroud)

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

<form autocomplete="off" ...></form>
Run Code Online (Sandbox Code Playgroud)

  • 根据https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion,autcompletion = off影响"会话历史缓存",至少在Gecko中.我会测试它是否适用于我需要的东西. (2认同)
  • 所有的答案和建议对我都没有用.使用chrome和develeoping .net (2认同)

sha*_*eef 42

来自stackoverflow参考

如果浏览器已经保存了值,那么它就无法使用value =""

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

<input type="text" autocomplete="off" />
Run Code Online (Sandbox Code Playgroud)

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

  • 在Chrome中,看起来`autocomplete ="off"`在单个表单元素上使用时没有效果 - 即使`value`属性显式设置为空白,并且在发送`Cache-Control:Must-Revalidate`标题时,没有效果.我不得不将`autocomplete ="off"属性应用于`<form>`元素本身来抑制Chrome中的这种行为. (9认同)

pmk*_*mko 10

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

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


Ana*_*edi 7

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

<form autocomplete="off"></form> 
Run Code Online (Sandbox Code Playgroud)

要么

$('#Textfiledid').attr('autocomplete','off');
Run Code Online (Sandbox Code Playgroud)

`


eri*_*nia 6

迟到了,但这对我在新的浏览器中起作用:

自动完成="新密码"