js解决按钮被多次点击的问题(微信支付-支付提交)

来源:互联网 发布:平板看电视直播软件 编辑:程序博客网 时间:2024/05/17 01:54
下面是我在微信支付项目中遇到的一个致命的问题以及解决的方法,希望大家给出宝贵的意见。
  1. 问题
    在微信网页支付过程中,当多次点击“立即支付”的按钮,会跳出多个微信支付的界面,用户必须依次关闭各个界面,还会出现手机卡死的现象,这无疑是一个致命的问题,严重影响用户的体验。
  2. 解决方法
    在这里我使用的方法是:采用标志来判断,每次点击都要对这个标志进行判断。一段时间后对标志进行复位。具体的代码如下:
<a id="submit" class="hot-btn mar_0_10 mar_b_20" onclick="jspay123();">立即支付</a>
<script type="text/javascript">    var clicktag = 0;  //标志    function jspay123() {         var openid = "${openid}";         var money = $("#MONEY").val();                                         var name = $('#name').val();         var id = $('#jiqi').val();          if (clicktag == 0) {  //判断标志              clicktag = 1;   //进行标志,防止多次点击              $.post("/pub/ajax/", {openid:openid,money:money,name:name,id:id}, function(data){              var appId = data.appId;              var timeStamp = data.timeStamp;              var nonceStr = data.nonceStr;              var wxPackage = data.wxPackage;              var signType = data.signType;              var paySign = data.paySign;              var name = data.name;              var id = data.id;              var money1 = data.money;              pay(appId,timeStamp,nonceStr,wxPackage,signType,paySign,name,id,money1);        }, "json");               //5秒后复位标志,可以进行再次点击             setTimeout(function () { clicktag = 0 }, 5000);           }      }</script>
1 0