我正在开展电子商务项目。在结账过程中,有一个按钮,用于在结账过程结束时购买物品。单击该按钮使用POST请求(标准,无AJAX)在页面上提交表单。但是,如果您多次单击该提交按钮非常快,则会向服务器发送多个POST请求,因此还会创建多个订单。
我的问题:是否可以通过javascript防止这些多次按键点击,或者某个页面处于奇怪的状态,因为新的页面加载会启动?
如果我使用内联脚本执行此操作,是否存在差异:
onsubmit="if(submitted) return false; submitted = true; return true"
或者在我的JS外部文件中?
另一种选择是在表单提交后立即禁用提交按钮,但IE为按钮添加了非常难看的字体颜色,CSS无法删除。
答案 0 :(得分:0)
页面继续处理事件并运行javascript,直到表单Post返回新内容,然后替换当前文档,从而加载新文档。它不是一个奇怪的状态,并且在新内容到达并且当前文档关闭之前正常工作。
有多种技术可以防止多次按下按钮。您的代码可以跟踪已发送帖子(在全局变量中)的事实,并在设置该变量时阻止再发送。在UI中,您可以在启动第一个帖子后立即禁用该按钮,以便无法再次按下该按钮。