怎样禁止谷歌浏览器重复执行按钮点击事件?

jiyutdj 2014-08-27 10:27:41
点击按钮,用AJAX无刷新往数据库里添加记录。按钮的点击事件处理代码里,首先是禁用按钮,然后用AJAX同步提交数据,直到AJAX返回数据时才恢复按钮,并弹出“添加成功”的提示框。

在IE和火狐浏览器里面都没得问题,即便连续快速点击按钮,也只会添加一次。

为什么在谷歌浏览器里会出现重复提交的情况?连续快速点击按钮,会重复多次执行,并连续返回多个“添加成功”的提示框。就好像JS禁用按钮对谷歌浏览器不起作用一样?但问题是经我测试,是可以起作用的。

以上情况是把网站上传到服务器上后出现的,只要是谷歌内核的浏览器,都会出现这种情况。在本机上不会,即便在本机上用延时函数,模拟连接服务器延时的情况,谷歌浏览器也不会重复执行。
...全文
397 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2014-08-27
  • 打赏
  • 举报
回复
用代码来控制连续点击 比如一个全局的bool变量 点击了就设置 flase 接受成功了设置true true状态下才会执行 ajax代码 或者 点击了直接换一个按钮 原来那个隐藏(2个按钮一模一样)
XZowie 2014-08-27
  • 打赏
  • 举报
回复
想問一下禁用是如何實現的? 如果你個禁用方法還存在著瀏覽器相容性問題 那麼從根本上做法就錯囉 既然是用js 就添加個變量來判斷吧
jiyutdj 2014-08-27
  • 打赏
  • 举报
回复
问题已解决,应该是先弹出"操作成功"的提示框,然后再恢复按钮,这样就只执行一次了。 这两者的顺序对于IE和火狐来说没什么差别,但是对于谷歌浏览器来说影响就大了。 非常感谢楼上的提供意见,每人给20分吧。
jiyutdj 2014-08-27
  • 打赏
  • 举报
回复
禁用按钮是用JQ禁用的,.attr("disabled",true); 按钮的单击事件处理函数,第一句就是禁用该按钮。在本机和局域网里调试,是完全兼容谷歌浏览器的,而且也第一时间禁用了该按钮。 就是上传到万网空间里后,就不能第一时间禁用按钮了,似乎要延迟一段时间后才禁用按钮,所以造成重复执行。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧