为什么重新加载页面时复选框会保持选中状态?

新手上路,请多包涵

我正在重新加载具有以下代码的网页:

 <label for="showimage">Show Image</label>
<input id="showimage" name="showimage" type="checkbox" value="1" />

即使每次重新加载页面时发送到浏览器的 HTML 都是相同的,但在执行重新加载时,复选框始终采用选中的值。换句话说,如果用户选中复选框并重新加载,则复选框仍处于选中状态。

这里有一些缓存吗?

编辑:我在下面尝试了 Gordon Bell 的解决方案,发现即使在删除 value=“1” 之后,这种情况仍然存在。还有什么我可能会遗漏的吗?

 <label for="showimage">Show Image</label>
<input id="showimage" name="showimage" type="checkbox" />

原文由 readonly 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 351
2 个回答

是的,我相信它是缓存。例如,我在 Firefox 上看到了这种行为(不是 Safari,这是值得的:))。

您可以使用 CTRL - SHIFT - R 重新加载页面并绕过缓存(在 Firefox 上),您会看到检查值不带(但是正常的 CTRL - R 将从缓存中获取信息)

编辑:我能够在 Firefox 上禁用此服务器端,设置缓存控制标头:

 Cache-Control: no-store

这似乎禁用了 Firefox 的“记住表单值”功能

原文由 Owen 发布,翻译遵循 CC BY-SA 3.0 许可协议

autocomplete="off" 添加到页面的表单元素中。缺点是这不是有效的 XHTML,但它无需任何复杂的 javascript 即可解决问题。

原文由 ironbirdman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题