2013-09-25 43 views
0

我正在从事电子商务项目。在结帐过程中,在结帐过程结束时有按钮可以购买该物品。点击该按钮,使用POST请求(标准,无AJAX)在页面上提交表单。但是,如果您多次单击提交按钮的确很快,则多个POST请求会发送到服务器,因此也会创建多个订单。是否在点击提交按钮后处理Javascript代码?

我的问题:是否通过javascript来保存这些多个按钮点击,或者是因为新页面加载而导致页面处于奇怪状态?

有没有关于差别,如果我有联脚本做到这一点:

onsubmit="if(submitted) return false; submitted = true; return true" 

还是在我的JS外部文件?

另一种选择是在表单提交后立即禁用提交按钮,但IE向按钮添加了非常丑的字体颜色,而CSS无法删除。

+0

您可以放弃AJAX请求。如果您正在讨论内联或外部_always_ external,则将JavaScript写为字符串是反模式。 – elclanrs

+0

但请求不是一个Ajax请求..所以这是一个标准的页面加载与e表格POST提交.. – user2477219

回答

0

页面继续处理事件并运行javascript,直到表单Post返回新内容,然后替换当前文档,从而加载新文档。它不处于一个奇怪的状态,并且正常工作,直到新内容到达并且当前文档被关闭。

有多种技术可以防止多次按下按钮。您的代码可以跟踪已发送帖子的事实(在全局变量中)并阻止在设置该变量时发送更多信息。在用户界面中,只要启动了第一篇文章,就可以禁用该按钮,因此无法再次按下该按钮。

+0

好吧,这很酷...所以我会做一个JS变量状态,它知道,如果表单已经提交。谢谢你的信息 – user2477219