怎的禁止谷歌浏览器重复执行按钮点击事件
怎样禁止谷歌浏览器重复执行按钮点击事件?
点击按钮,用AJAX无刷新往数据库里添加记录。按钮的点击事件处理代码里,首先是禁用按钮,然后用AJAX同步提交数据,直到AJAX返回数据时才恢复按钮,并弹出“添加成功”的提示框。
在IE和火狐浏览器里面都没得问题,即便连续快速点击按钮,也只会添加一次。
为什么在谷歌浏览器里会出现重复提交的情况?连续快速点击按钮,会重复多次执行,并连续返回多个“添加成功”的提示框。就好像JS禁用按钮对谷歌浏览器不起作用一样?但问题是经我测试,是可以起作用的。
以上情况是把网站上传到服务器上后出现的,只要是谷歌内核的浏览器,都会出现这种情况。在本机上不会,即便在本机上用延时函数,模拟连接服务器延时的情况,谷歌浏览器也不会重复执行。
------解决方案--------------------
想問一下禁用是如何實現的?
如果你個禁用方法還存在著瀏覽器相容性問題
那麼從根本上做法就錯囉
既然是用js 就添加個變量來判斷吧
------解决方案--------------------
用代码来控制连续点击
比如一个全局的bool变量 点击了就设置 flase
接受成功了设置true
true状态下才会执行 ajax代码
或者 点击了直接换一个按钮 原来那个隐藏(2个按钮一模一样)
点击按钮,用AJAX无刷新往数据库里添加记录。按钮的点击事件处理代码里,首先是禁用按钮,然后用AJAX同步提交数据,直到AJAX返回数据时才恢复按钮,并弹出“添加成功”的提示框。
在IE和火狐浏览器里面都没得问题,即便连续快速点击按钮,也只会添加一次。
为什么在谷歌浏览器里会出现重复提交的情况?连续快速点击按钮,会重复多次执行,并连续返回多个“添加成功”的提示框。就好像JS禁用按钮对谷歌浏览器不起作用一样?但问题是经我测试,是可以起作用的。
以上情况是把网站上传到服务器上后出现的,只要是谷歌内核的浏览器,都会出现这种情况。在本机上不会,即便在本机上用延时函数,模拟连接服务器延时的情况,谷歌浏览器也不会重复执行。
------解决方案--------------------
想問一下禁用是如何實現的?
如果你個禁用方法還存在著瀏覽器相容性問題
那麼從根本上做法就錯囉
既然是用js 就添加個變量來判斷吧
------解决方案--------------------
用代码来控制连续点击
比如一个全局的bool变量 点击了就设置 flase
接受成功了设置true
true状态下才会执行 ajax代码
或者 点击了直接换一个按钮 原来那个隐藏(2个按钮一模一样)