这是今年用Ajax在页面做一个异步添加的动作,里面包括很多js处理方法和验证,代码比较乱。关于Ajax的部分已经用红色标出,也用以纪念一下自己的成长。
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("操作失败,请稍后再试!"); } } }); }
实现效果如下:
点击添加,可以一个一个的在列表上部插入。