当点击“返回”按钮时,我该如何保留表单数据?

3
我正在开发一个rails应用程序。 (我认为这不是一个特定于rails的问题) 有一个由3个步骤组成的预订流程。 当用户在第二步页面时,如果用户点击“上一页”按钮,则第一步中的表单数据应与之前相同。
我将“history.go(-1);”附加到“上一页”按钮上。
它在我的firefox浏览器上运行。 但它在一些IE浏览器上不起作用。 虽然我的IE可以工作。
如何强制保留页面返回时的表单数据?
谢谢。
山姆
4个回答

3

对于这种操作,不能依赖于客户端(JavaScript)。

在第一步将数据保存在某个地方后,只需恢复即可。


1

您可以将第二页的数据保存到数据库、服务器内存缓存或三个 cookie 中,并在页面加载时恢复它。


哦,我想保留第一页的数据,而不是第二页的数据。 我不需要保存数据到数据库。 我只需要缓存表单数据。 但某些浏览器无法缓存它们。 - Sam Kong
好的,你需要在某个地方缓存它 - 我觉得数据库是一个相对便宜的方式来做到这一点,因为(大概)你最终需要在提交过程结束时存储那些数据。编辑答案以扩展。 - Dan Davies Brackett

1

考虑在页面上添加一个隐藏的iframe来存储数据。我不确定具体如何实现,但这是人们在URL哈希更改时存储页面状态的技术。检查一下像dojo和jquery这样的库是否有助于支持这种情况。


1

ASP.NET通过ViewState自动完成此操作(注意:文章古老但仍然相当准确)。也许您可以将类似的方法应用于Rails。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接