后退按钮上的清晰表格?

我有一个页面,其中包含一个表单中的几个复选框,选中后,使用jquery从表中过滤相应的信息。 我的问题是以下情况:

  1. 有人检查一个或多个框,从表中隐藏行

  2. 他们点击一个链接,转到另一个页面

  3. 他们点击后退按钮。

此时,仍会选中复选框(至少在chrome中),但所有表行都可以再次查看。

有任何想法吗?

如果您的目标是让他们回到他们离开前的确切视图(表格行仍然隐藏):

这是网站的一个缺点(或优点):它是无状态的,特别是在客户端操作方面。

您需要做的是将应用程序状态存储在URL哈希标记中,以便当用户使用其后退按钮时,您可以检索“状态”并重新构建其视图。

这是另一个问题,其答案可能对您有所帮助: jquery javascript:用hashtag添加浏览器历史记录?

如果您的目标是将页面返回到其初始状态:

只需重置页面加载时的所有复选框:

$('input:checkbox').prop('checked', false); 

-要么-

重置整个表单:

 $(':input','#myform') .not(':button, :submit, :reset, :hidden') .val('') .prop('checked', false) .prop('selected', false); 

不允许缓存页面,或添加代码以重置表单:

 $("form input").each(function(){ var elem = $(this); var type = elem.attr("type"); if(type == "checkbox") elem.prop("checked", ""); else if(type == "text") elem.val(""); }); 

必须使用.each ,因为CSS选择器input[type=text]不匹配,而元素仍然是文本元素。

对于IE在提交后重置表单,对我没有帮助。 而是遵循代码为我工作。 页面加载事件也在浏览器后退按钮上调用。

 $(window).load(function() { $('form').get(0).reset(); //clear form data on page load }); 

所以你的问题不在于浏览器缓存用户输入,而是没有隐藏行。 您可以通过添加一个jQuery脚本轻松解决此问题,该脚本将检查是否选中了复选框(加载页面后)。 如果已选中,则隐藏行:)

伪代码:

 1. wait for the page to load 2. for each checkbox check if checked 3. if it's checked, hide the corresponding row in the same way you did when the user checked it.