这是今年用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("操作失败,请稍后再试!");
}
}
});
}
实现效果如下:
点击添加,可以一个一个的在列表上部插入。