一个工具类,据说JQuery框架,实现异步表单提交,同时添加将表单数据提交到新窗口和IFrame的方法
// 定义函数命名空间 Kevin = new Object(); /** * 异步提交表单 */ Kevin.submitAjaxForm=function(formId, url, succback, isunlock){ jQuery.ajax({ url: url, // 提交的页面 data: $("#" + formId).serialize(), // 从表单中获取数据 type: "POST", // 设置请求类型为"POST",默认为"GET" dataType: "json", contentType: "application/x-www-form-urlencoded;charset=UTF-8", // 必须要设置为UTF-8,否则提交数据乱码 beforeSend: function(){ if(!isunlock){ new screenClass().lock(); } }, error: function(msg) { // 设置表单提交出错 new screenClass().unlock(); alert("执行出错:" + msg.responseText); }, success: function(resp) { if(!isunlock){ new screenClass().unlock(); // 设置表单提交完成使用方法 } if(resp.success == false){ alert("执行失败:" + resp.resultMsg); }else if(resp.success == true){ if(succback == '' || typeof(succback) == "undefined"){ window.location.href="success.jsp"; }else{ succback(resp.attributes); } }else{ alert("未知结果:" + resp); } }, cache: false }); } /** * 将表单提交到新的窗口 */ Kevin.submitToWindow=function(form, title, url, width, height){ var title = title ? title : Math.floor(Math.random() * ( 1000 + 1)); var winObj = window.open("", title, "toolbar=no, menubar=no, scrollbars=yes , resizable=no,location=no, status=no"); var ie = navigator.userAgent.toLowerCase(); ie = ie.match(/msie ([\d.]+)/) if(!ie){ alert('请使用IE内核浏览器'); }else{ winObj.resizeTo(width , height); } var bakTarget = form.target; var bakAction = form.action; form.action = url; form.target= title; form.submit(); form.target= bakTarget; form.action = bakAction; return winObj; } /** * 将表单提交到框架 */ Kevin.submitToIFrame=function(form, target, url){ if(target){ var bakTarget = form.target; var bakAction = form.action; form.action = url; form.target= target; form.submit(); form.target= bakTarget; form.action = bakAction; }else{ alert('iframe的id不能为空'); } } /** * 屏幕处理类 */ var screenClass = function(){ /// 解锁 this.unlock = function(){ var divLock = document.getElementById("divLock"); if(divLock == null) return; document.body.removeChild(divLock); }; /// 锁屏 this.lock = function(slow){ var sWidth,sHeight; var imgPath = slow ? "img/waiting_slow.gif" : "img/waiting_fast.gif"; sWidth = document.body.clientWidth; sHeight = document.body.clientHeight; var bgObj=document.createElement("div"); bgObj.setAttribute("id","divLock"); bgObj.style.position="absolute"; bgObj.style.top="0"; bgObj.style.background="#cccccc"; bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; bgObj.style.opacity="0.6"; bgObj.style.left="0"; bgObj.style.width=sWidth + "px"; bgObj.style.height=sHeight + "px"; bgObj.style.zIndex = "100"; document.body.appendChild(bgObj); var html = "<table border=\"0\" width=\""+sWidth+"\" height=\""+sHeight+"\"><tr><td valign=\"middle\" align=\"center\"><image src=\""+imgPath+"\"></td></tr></table>"; bgObj.innerHTML = html; // 解锁 bgObj.onclick = function(){ //new screenClass().unlock(); // 应该等完成后再解锁 }; }; }