哪位大哥教一下怎么写提交一次的JS代码

图片描述

我代码是放在error里面的,但是写的逻辑半点用都没有,还是提交成功了,还有怎么只能提交一次!!!
球大神教一教!

阅读 3k
4 个回答

。。。你把逻辑判断写$.ajax()前面。

mui.alert()后面写return

看样子是用的 jQuery,建议你不要用 success: callbackerror: callback,改用 .done(callback).fail(callback)(我后面的代码会演示)。

然后要解决只提交一次的问题,需要设置一个状态变量,比如叫 submited。它所在的作用域只需要在 ajax 调用所在的作用域就行,甚至可以通过闭包隐藏起来

var doSubmit = (function() {
    var submited = false;

    return function() {
        // 检查到已经提交过了,直接返回不再进行提交
        if (submited) {
            return;
        }

        submited = true;
        $.ajax({
            // ....
        }).done(function() {
            // 提交成功
            mui.toast("恭喜提交成功");
        }).fail(function(xhr, type, error) {
            // 提交失败恢复 submited 为 false 以便下次提交
            mui.toast("提交失败");
            submited = false;
        });
    };
})();

// 在某种情况下触发
doSubmit();

在全局做一个flag变量

var flag=false;
if(flag==false){
    ajax....
    success:function(data){
        if(data.code==1003){
            flag=true;
        }
    }
}else{
    alert("您已提交成功")
}

在发起ajax请求前声明一个状态变量作为判断的依据,初始值为true,当ajax请求成功后将变量置为false。检验代码应该写在ajax请求外面,当不满足条件时return false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题