Ajax 异步提交方法

这是今年用Ajax在页面做一个异步添加的动作,里面包括很多js处理方法和验证,代码比较乱。关于Ajax的部分已经用红色标出,也用以纪念一下自己的成长。

Ajax 异步提交方法,接下来是主要的js实现方法

function addMailTracking(){

//$("#WayBillsingleFrom").valid();
    var flightno=$("#flightno").val();
    var arrivepost=$("#arrivepost").val();
    var sealingtype=$("#sealingtype").val();
    var oper=$("#oper").val();
    var mailType=$("#mailType").val();
     var sealingdate=$("#sealingdate").val();
    var packageno=$("#packageno").val();
    var m_mailcodes = $("#m_mailcodes").val().replace(/[\r\n]/g,"$$");
    var bagno=$("#bagno").val();
    var mailno=$("#mailno").val();
     var weight=$("#weight").val();
     var setpost=$("#setpost").val();
     
     var sealingtype=$("#sealingtype").val();
    var mailType=$("#mailType").val();
     if(-1==flightno||-1==arrivepost||-1==oper){//不选择选项
myErrorTips("请选择寄达局,航班,封发员");
     return false;
     }
     if(""==packageno||""==bagno||""==weight||""==mailno){//不输入
myErrorTips("请输入完整的总包信息");   
     return false;
     }
     if(mailType==1&&sealingtype==1&&""==m_mailcodes){//挂包正常件,条码为空
myErrorTips("请输入条码再添加");
     return false;
     }
       $.ajax({  
         type : "post",url : "${ctx}/mailtracking.action?method=wayBillsingle&flight=" + flightno+"&arrivepost="+encodeURI(encodeURI(arrivepost))
          +"&sealingtype="+sealingtype+"&oper="+oper+"&mailType="+mailType+"&sealingdate="+sealingdate+"&packageno="+packageno
          +"&m_mailcodes="+m_mailcodes+"&bagno="+bagno +"&mailno="+mailno+"&weight="+weight+"&setpost="+encodeURI(encodeURI(setpost)),async : false,success : function(data){              
                   data = data.toString();
                   var isCor=data.toString().indexOf("OK");
                   var isNotMail=data.toString().indexOf(",");//条码不合法
                   var isRepeatCode=data.toString().indexOf("repeat");
                   if(isRepeatCode != -1){//条码重复,不给插入,给提示
                   errorCodes = data.split("...");//分割出重复的条码
                   tipsString = "总包登记失败,已登记条码:"+errorCodes[1];
                   myErrorTips(tipsString+"");
                   return true;
                   }
                   if (isCor != -1) {
                   if(isNotMail!=-1){
// myErrorTips("邮件条码不合法,请检查邮件条码!");
                   errorCodes = data.split(",");//分割出错误条码,下标1
                     tipsString="不合法条码:"+errorCodes[1];
                     tipsString=tipsString.substring(0,tipsString.length-1);
                     var temp;
                     str = data.split("...");//分割出id和错误条码
                     temp=str[1];
                   str=temp.split(",");//分割出id
                   w_id=str[0];//数据库表的id,唯一的标识
//alert("tipsString:"+tipsString+"w_id:"+w_id);
                   append();
                   clear();
                   $("#arrivepost").focus();
                   return true;
                   }
                   str = data.split("...");
                   w_id=str[1];//数据库表的id,唯一的标识
                    myTips("succeed","总包添加成功!","",.1,2,"300px","200px");
                   tipsString="总包添加成功";
                            append();
                             clear();
                        $("#arrivepost").focus();
                            
                        }
                         else {
                            myErrorTips("操作失败,请稍后再试!");
                                
                        }
                }
         });    

     }

实现效果如下:

点击添加,可以一个一个的在列表上部插入。

相关文章

JS原生Ajax操作(XMLHttpRequest) GET请求 POST请求 兼容性问题 利用iframe模拟ajax 实现表单提交的返回...
AJAX 每日更新前端基础,如果觉得不错,点个star吧 😃 https://github.com/WindrunnerMax/E...
踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSe...
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈。 为了防止...
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: "./server/slider.js...
Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var...