0

我正在处理购买流程。该过程包括 4 个步骤。前两个步骤是我们获取所有客户数据的地方。第三步使用 AJAX 将数据发送到我们的服务器,然后显示付款表格。付款后,在第 4 步中感谢客户。

我的问题是关于第 1 步和第 2 步。现在所有这些步骤都在同一页面上。我有一个表格分为两个<div>。在第一步中,第二个 div 被隐藏(css: {display:none;}),当客户进入第 2 步时,第一个 div 用 jQuery 隐藏,hide()第二个 div 用 jQuery 显示show()

我的问题是我希望客户能够使用网络浏览器中的“后退”按钮返回到第 1 步,这显然现在不起作用。是否有任何纯 JavaScript 解决方案?无论如何,我们将要求我们的用户激活 js。还是开始使用会话更好?该网站基于 PHP。

我们会看看是否有人理解我的想法和问题..

4

3 回答 3

1

更改 URL 片段(# 之后的位)会创建一个浏览器历史记录条目。许多网络应用程序利用这一点来做你所描述的事情。看看jQuery BBQ 插件(这里是演示)。

于 2010-03-08T22:57:26.677 回答
1

Ajax 和后退按钮通常不能很好地配合使用。您应该只提供一个可以“返回”的链接。但是,如果您再次提交第一个表单,这会有什么问题吗?你最终会得到额外的或孤立的条目吗?

于 2010-03-08T22:44:56.567 回答
0

最简单的作弊方法(而且远非可靠)是拥有一个专门监听“window.unload”事件的javascript函数,但前提是用户可以看到表单的第二部分并且没有点击提交按钮或您设置为提交或转到另一个页面的任何其他内容(如链接)。

但这是相当侵入性的,因为用户可能真的只想离开页面;很难将时间设置得恰到好处,因为您只想在用户从第二个表单返回时返回 false,而不是离开页面进行其他任何操作(包括您想要的);如果他们想真正关闭窗口,它可能会搞砸(你应该尽量不要侵犯);基本上,据我所知,用户单击后退按钮没有跨浏览器的 javascript 事件。但其他人可能不会。

但是,如果您可以计算出时间并且不介意冒险,那将是一个巧妙的技巧。

于 2010-03-08T23:06:42.037 回答