我正在处理购买流程。该过程包括4个步骤。前两个步骤是我们接收所有客户数据的地方。第3步使用AJAX将数据发送到我们的服务器,然后显示付款表单。付款后,请在第4步感谢客户。
我的问题是关于步骤1和步骤2.现在所有这些步骤都在同一页面上。我有一个表单分为两个<div>
。在第一步中隐藏第二个div(css:{display:none;}
),当客户进入第2步时,第一个div隐藏了jQuery hide()
,第二个div显示为jQuery {{1} }。
我的问题是我希望客户可以使用网络浏览器中的“后退”按钮返回到第1步,这显然现在无法正常工作。有没有纯粹的JavaScript解决方案?我们将要求我们的用户无论如何都要激活js。或者开始使用会话更好吗?该网站基于PHP。
我们会看到是否有人了解我的想法和问题。
答案 0 :(得分:1)
Ajax和后退按钮通常不能很好地协同工作。您应该只提供一个“后退”的链接。但如果您再次提交第一份表格,这会有任何问题吗?你最终会得到额外的或孤立的条目吗?
答案 1 :(得分:1)
更改URL片段(#后面的位)会创建浏览器历史记录条目。很多webapps利用这个来做你正在描述的事情。请查看jQuery BBQ plugin(演示here)。
答案 2 :(得分:0)
最简单的欺骗(它远非可靠)是有一个专门侦听“window.unload”事件的javascript函数,但只有当用户的表单的第二部分可见且不是点击提交按钮或您设置提交的任何其他内容或转到其他页面(如链接)。
但这是相当干扰的,因为用户可能真的只想离开页面;很难设置正确的时间,因为如果用户从第二个表单单击后退,而不是将页面留给其他任何内容(包括你想要的内容),你只想返回false;如果他们想要关闭窗户(你应该尽量不要侵犯),它可能搞砸了;基本上,据我所知,用户点击后退按钮没有跨浏览器的javascript事件。但其他人可能没有。
但如果你可以计算时间并且不介意承担风险,那将是一个巧妙的伎俩。