大多数浏览器缓存形成输入值.因此,当用户刷新页面时,输入具有相同的值.
这是我的问题.当用户单击"保存"时,服务器将验证POSTed数据(例如,已检查的产品),如果无效,则将其发送回浏览器.但是,如上所述,即使服务器清除某些值的选择,由于浏览器缓存,它们仍可能被选中!我的数据不可见(直到选中父项)复选框,因此用户可能甚至不知道仍然选择了某些先前的值,直到再次单击"保存"并收到错误消息 - 即使用户认为不是.哪个很烦人.
这可以通过Ctrl-F5解决,但它甚至不是解决方案.是否有一种自动/编程方式告诉浏览器不要在某个表单/页面上缓存表单输入数据?
我有一个页面,其中包含一个表单中的几个复选框,选中后,使用jquery从表中过滤相应的信息.我的问题是以下场景:
有人检查一个或多个框,从表中隐藏行
他们点击一个链接,转到另一个页面
他们点击后退按钮.
此时,仍然会选中复选框(至少在chrome中),但所有表行都可以再次查看.
有任何想法吗?
我有一个<select>元素,用于导航。您单击它可以选择要转到的页面,单击后它将转到该页面。这是它的代码:
<select onchange="window.open(this.options[this.selectedIndex].value,'_top')">
<option value="/item1" selected>Item 1</option>
<option value="/item2" selected>Item 2</option>
<option value="/item3" selected>Item 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当我使用它时,它会正确地转到页面,但是当点击后退按钮时,下拉列表中已经选择了我去的页面。例如,如果我在“项目 1”上,选择“项目 2”,然后通过浏览器的后退按钮返回到“项目 1”,则会在列表中选择“项目 2”,这有点令人困惑。
如何让它切换回默认值?
我有一个网页x.php(在我的网站的密码保护区域),它有一个表单和一个按钮,使用该POST方法发送表单数据并打开x.php#abc.这非常有效.
但是,如果用户决定在Internet Explorer 7中导航回来,则会x.php清除原始文件中的所有字段,并且必须再次输入所有字段.我无法在会话中保存发布的信息,我试图了解如何让IE7按照我想要的方式运行.
我在网上搜索并找到了答案,表明HTTP标头应该包含显式的缓存信息.目前,我试过这个:
session_name("FOO");
session_start();
header("Pragma: public");
header("Expires: Fri, 7 Nov 2008 23:00:00 GMT");
header("Cache-Control: public, max-age=3600, must-revalidate");
header("Last-Modified: Thu, 30 Oct 2008 17:00:00 GMT");
Run Code Online (Sandbox Code Playgroud)
及其变化.没有成功.使用WireShark等工具查看返回的标题,向我展示了Apache确实尊重我的标题.
所以我的问题是:我做错了什么?