防止订单重复提交的几种方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuzengman/article/details/83588299

第一种办法:

var flag = false;// 在提交函数外面定义个变量防止重复提交

//提交函数

function sublimit() {

    if(flag){

        return; // 如果存在就返回

    }

    flag = true;

    $.post(url, {'data':id}, function(res){

         //成功 

         if(res.code > 0){

              //跳转或刷新

              window.location.href = 'www.baidu.com';

         }else{

              alert(res.msg);

              flag = false;

         }

     }, 'json');

}

第二种利用 layer 的loading:

也是类似上面那样,前面调用 loading 加载中,当ajax返回成功或失败时就取消加载中。

/**
* 提交订单
* 2017年6月22日 15:09:08 
*/
var flag = false;//防止重复提交


function submitOrder() {

     if(flag){
          return;
     }
    flag = true;
    var goods_sku_list = $("#goods_sku_list").val();// 商品Skulist
    var leavemessage = $("#leavemessage").val();// 买家留言
    var use_coupon = getUseCoupon();//优惠券id
    var account_balance = 0;//可用余额
    if($("#account_balance").val() != undefined){
            account_balance = $("#account_balance").val() == "" ? 0 :                             $("#account_balance").val();
    }
    var integral = $("#hidden_count_point_exchange").val() == "" ? 0 :             $("#hidden_count_point_exchange").val();//积分
    var pay_type = parseInt($(".item-options[data-flag='pay']").attr("data-select"));//支付方式 0:在线支付,4:货到付款


    var buyer_invoice = getInvoiceContent();//发票
    var shipping_company_id = $(".item-options[data-flag='express_company']").attr("data-select");

     // 
    $.ajax({
            url : __URL(APPMAIN + "/order/ordercreate/"),
            type : "post",
            data : {
                'goods_sku_list' : goods_sku_list,
                'leavemessage' : leavemessage,
                'use_coupon' : use_coupon.id,
                'integral' : integral,
                'account_balance' : account_balance,
                'pay_type' : pay_type,
                'buyer_invoice' : buyer_invoice,
                'pick_up_id' : getPickupId(),
                'shipping_company_id' : shipping_company_id
            },
            success : function(res) {
                if (res.code > 0) {
                    //如果实际付款金额为0,跳转到个人中心的订单界面中
                    if(parseFloat($("#realprice").attr("data-total-money")) == 0){
                            location.href = __URL(APPMAIN + '/pay/paycallback?                                     msg=1&out_trade_no=' + res.code);
                    }else if(pay_type == 4){
                            location.href = __URL(APPMAIN + '/order/myorderlist');
                    }else{
                        location.href = __URL(APPMAIN + '/pay/getpayvalue?out_trade_no=' + res.code);
                    }
                } else {
                        showBox(res.message);
                        flag = false;
                }
            }
    });
}

猜你喜欢

转载自blog.csdn.net/wuzengman/article/details/83588299
今日推荐