为什么重新加载页面时checkbox会保持被选中状态?
我正在重新加载具有以下代码的网页:
<label for="showimage">Show Image</label> <input id="showimage" name="showimage" type="checkbox" value="1" />
即使HTML保持发送到浏览器对于每次页面重新载入都是相同的,当执行重新载入时,checkbox总是取得选中的值。 换句话说,如果用户选中checkbox并重新加载,checkbox仍然被选中。
这里有caching吗?
编辑 :我尝试了下面的戈登贝尔的解决scheme,并发现,即使删除值=“1”,这仍然发生。 还有什么我可能会失踪?
<label for="showimage">Show Image</label> <input id="showimage" name="showimage" type="checkbox" />
是的,我相信这是caching。 我在Firefox上看到这种行为(不是Safari,为什么值得:))。
您可以使用CTRL – SHIFT – R重新加载页面并跳过caching(在Firefox上),您将看到检查值不会携带(但是正常的CTRL – R会从caching中获取信息)
编辑 :我能够在Firefox上禁用此服务器端,设置caching控制标题:
Cache-Control: no-store
这似乎禁用了Firefox的“记忆表单值”function
将autocomplete="off"
添加到页面上的表单元素中。 缺点是这不是有效的XHTML,但它修复了这个问题,没有任何复杂的JavaScript。
用js设置autocomplete =“off”也运行良好。
例如使用jQuery的:
$(":checkbox").attr("autocomplete", "off");
这是Firefox的一个很好的function:如果你input一些东西,但重新加载页面,文本仍然在文本区域。 同样你select的其他设置。
唉,它不工作在SO(可能由JS重置)和dumber浏览器像IE …
这提出了一个解决scheme:如果你真的需要这样做,重置窗体与JS。 form.reset()可能会做这个工作(就像重置inputbutton一样)。
或者,而不是f5按地址栏上input:)
这可能是由于浏览器caching – 对于不经常更改的静态网站非常有用,对于dynamicWeb应用程序非常不利。
试试页面头部的这两个meta标签。 第二个元标记适用于不识别“无caching”元标记的旧版浏览器(IE5),虽然不同,但会产生相同的结果:每个请求都发送到服务器。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1">
$( “#showimage”)丙( “选中”,假);
公众的想法来解决这个问题
使表单&重置button
<form> <checkbox> <reset> </form> $(reset).trigger("click");//to clear the cache and input $(checkbox).trigger("click");//to mark checkbox
- Safari和Firefox中的HTML5video(mp4和ogv)问题 – 但是Chrome都很好
- Firefox Web控制台已禁用?
- Firefox中的jQuery html()使用.innerHTML忽略DOM更改
- 我如何以编程方式点击JavaScript中的元素?
- 在<button>中嵌套<a>不适用于Firefox
- Ajax,后退button和DOM更新
- Firefox和Chrome在本地主机上运行缓慢; 已知的修复程序在Windows 7上不起作用
- jQuery $ .ajax(),$ .post在Firefox中发送“OPTIONS”作为REQUEST_METHOD
- 你最喜欢的Firebug提示或技巧是什么?