zoukankan      html  css  js  c++  java
  • 表单重复提交

    https://www.zhihu.com/question/19805411

    https://czh7867480.github.io/2016/09/25/%E5%8E%9F%E5%88%9B-%E5%B7%A5%E4%BD%9C%E4%B8%ADbug%E8%A7%A3%E5%86%B3%E4%B9%8B-%E9%98%B2%E6%AD%A2Ajax%E9%87%8D%E5%A4%8D%E6%8F%90%E4%BA%A4/

    1

    $.ajax({
                 url: 'login.do',
                data: $(this).closest('form[name="loginForm"]').serialize(),
                type: 'post',
                 beforeSend: function () {
                     //3.让提交按钮失效,以实现防止按钮重复点击
                     $(loginBtn).attr('disabled', 'disabled');
                     
                    //4.给用户提供友好状态提示
                     $(loginBtn).text('登录中...');
                 },
                complete: function () {
                     //5.让登陆按钮重新有效
                     $(loginBtn).removeAttr('disabled');
                 },
                 success: function(msg){
                     
                     if (msg === 'ok') {
                         alert('登录成功!');
                         
                         //TODO 其他操作...
                     } else {
                         alert('登录失败,请重新登录!');
                     }
         
                 }
             });

    当只需要最后一次ajax

    window.pendingRequests = {};
    $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
      var key = options.url+Math.random();
      if (!pendingRequests[key] && key.indexOf('.html') == -1) {
          pendingRequests[key] =jqXHR;       
      }
      for(let i in pendingRequests)
          if(i!=key){
              pendingRequests[i].abort()
          }
      var complete = options.complete;
      options.complete = function (jqXHR, textStatus) {
          delete pendingRequests[key];
          if ($.isFunction(complete)) {
              complete.apply(this, arguments);
          }
      };
    });

    当只需要第一次ajax

    window.pendingRequests = {};
    $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
        var key=options.url;
        if (!pendingRequests[key] && key.indexOf('.html') == -1) {
            pendingRequests[key] =jqXHR;
        } else if (key.indexOf('.html') == -1) {
            jqXHR.abort();
        }
        var complete = options.complete;
        options.complete = function (jqXHR, textStatus) {
            delete pendingRequests[key];
            if ($.isFunction(complete)) {
                complete.apply(this, arguments);
            }
        };
    });
  • 相关阅读:
    强制ubuntu登陆用户退出
    命令行设置ubuntu 无密码自动登陆
    docker 添加普通用户权限
    CMake配置工程链接库
    配置glibc
    编译sfml
    GNOME设置快捷键
    设置jetson nano VNC
    深度学习中的基本概念——评价指标相关
    行为识别
  • 原文地址:https://www.cnblogs.com/hupan508/p/7595441.html
Copyright © 2011-2022 走看看