ajax异步提交form

来源:互联网 发布:淘宝在哪修改宝贝 编辑:程序博客网 时间:2024/04/30 03:28

第一种

 jQuery.ajax  同时jquery 序列化 ,调用一方法,name:value的形式

有调用超时相应,但传递参数不能为“汉字”

jquery 序列化 name:value的形式 变成字符串,不是数组

/*function exportExcel1(){loading();//提交form中元素中 参数序列化  machineOpenedList为 form 的idvar data1 = convertArray($("#machineOpenedList").serializeArray()); alert(data1.trade);jQuery.ajax({  url: '<%=request.getContextPath()%>/json/machineOpenedjson.jspa',   //提交的action  dataType: "script",  timeout:10000, //加载时间  data:data1,  beforeSend:function(XMLHttpRequest){    },  success: function(data) {             //获取成功                                               data = data.substr(1,data.length-6)    // window.open("<%=request.getContextPath()%>/tempexcel/"+data+".xls");     document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+data+".xls  onclick=\"javascript: loaded();target='_blank'  \" >样机开通分析表 (点击下载)</a>";   document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";    document.getElementById("searchB").disabled="";document.getElementById("exportB").disabled="";       },  error: function(XMLHttpRequest, textStatus, errorThrown) { //数据获取失败//document.getElementById("loadDiv").innerHTML="数据加载错误!";alert("数据加载失败,请重新导出!");loaded();  }});}*///jquery 序列化     name:value的形式    变成字符串,不是数组function convertArray(o) { var v = {}; for (var i in o) { if (typeof (v[o[i].name]) == 'undefined') v[o[i].name] = o[i].value; else v[o[i].name] += "," + o[i].value; } return v; } function loading(){document.getElementById("loadingImg").innerHTML="<img align=\"middle\" src=\"<%=request.getContextPath()%>\/images\/7.gif\" \/>正在加载数据,请稍后……"; document.getElementById("loadingImg").style.display='block';document.getElementById("searchB").disabled="disabled";  //点击按钮不可用document.getElementById("exportB").disabled="disabled";}function loaded(){document.getElementById("loadingImg").style.display='none'; document.getElementById("fileUrlPath").innerHTML="";document.getElementById("searchB").disabled="";document.getElementById("exportB").disabled="";}


第二种

 jQuery.ajax  不能传递汉字 参数,同时jquery 序列化 ,拼参数

function exportExcel(){ if(fun(2)){loading();varv="?export=1&"+$("#searchfrom").serialize(); //拼参数 ,没变成字符串jQuery.ajax({  url: '<%=request.getContextPath()%>/json/appClassDetAnaStaList.jspa'+v,  dataType: "script",  timeout:10000,  beforeSend:function(XMLHttpRequest){    },  success: function(data) {                                                            data = data.substr(1,data.length-6)    // window.open("<%=request.getContextPath()%>/tempexcel/"+data+".xls");     document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+data+".xls  onclick=\"javascript: loaded();\" >应用到大类明细分析 (点击下载)</a>";     document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";      document.getElementById("searchB").disabled="";document.getElementById("exportB").disabled="";       },  error: function(XMLHttpRequest, textStatus, errorThrown) {//document.getElementById("loadDiv").innerHTML="数据加载错误!";alert("数据加载失败,请重新导出!");loaded();  }});}}


第三种 $.post可以传递汉字参数

function exportExcel(){loading();var data = convertArray($("#machineOpenedList").serializeArray()); $.post('<%=request.getContextPath()%>/json/machineOpenedjson.jspa', data,function(json){     document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+json+" onclick=\"javascript: loaded();\" >样机开通分析表 (点击下载)</a>";   document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";    document.getElementById("searchB").disabled="";document.getElementById("exportB").disabled=""; },"json"); }


 


 

原创粉丝点击