如何禁用F5键盘键

时间:2010-01-13 11:12:24

标签: javascript

我正在做在线出租车预订服务,

一旦用户成功完成了他的旅程,

我们正在显示感谢预订,我们会显示预订ID,有些人会点击F5

键,所以页面刷新并插入新条目

所以我想在我的cashthankyou你页面上停用F%,

由于 Bharanikumar

6 个答案:

答案 0 :(得分:13)

你不会有太多运气 - 按键的控制/检测严重依赖于浏览器,并且通常不可能超越标准行为。

您需要检测并正确处理重复的表单提交,而不是这种方法:

How to handle multiple submissions server-side

答案 1 :(得分:5)

最好的选择通常是找到一种不涉及篡改浏览器功能的方法。在您的情况下,这将使用户将预订提交到插入条目的页面,然后用户重定向到一个只做显示的用户页面。然后,用户可以在任何时间刷新页面,而不会发生任何危险。

答案 2 :(得分:2)

你做不到。这是浏览器的编码方式,您无法从网页中禁用它。

您需要重新构建应用程序以识别此类刷新,而不是创建其他记录。

这样做的一种方法是检查几秒钟前是否为用户输入了记录,如果是这种情况,则不插入新记录。

另一种方法是添加一个插页式页面进行添加,然后重定向到您的确认页面(此页面只是一个显示页面,刷新它不会做任何事情)。

答案 3 :(得分:1)

我不知道你是否可以禁用F5,但可以显示某种“你确定”的消息。

这可以使用在窗口重新加载或关闭之前调用的 window.onbeforeunload 来完成。

答案 4 :(得分:1)

他们刷新页面可能有几个原因。 Maye他们使用他们的后退按钮,双击你的提交按钮或其他任何加载两次的东西。

以下是您问题的两个真正解决方案:

1)输入带有随机数的表格字段,将此号码与预订一起保存,如果已经预订了该值,请在您的预订表中查看。这将阻止他们两次发送表格。

2)在上次完成预订时保存一张饼干。检查此值,不允许新的预订,即五分钟。

答案 5 :(得分:1)

另一种方法是将用户重定向到感谢页面,从会话中加载ID。

这样,当用户点击F5时,将加载感谢页面,并且不会再次尝试提交表单。

如果加载了感谢页面时,会话中没有预订ID,请重定向回主页或合适的错误页面。