第一种办法:
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;
}
}
});
}