salouhim 发表于 2013-1-29 10:37:36

ajax返回json

function getAccountCheckDifference(recordId,balance,acountBalance){var ajaxObj1=new nstc.AjaxObject();ajaxObj1.initRequest(queryCallBack,'text');ajaxObj1.doGet("wcl_ra_35_02_02.do?recordId=" + recordId);}function queryCallBack(jsonObj,balance,acountBalance) {if(jsonObj != null){var jsonArry = jsonObj.parseJSON();if (jsonArry != ""&&jsonArry !='null') { var frt = 0;   var fpt = 0;   var mrt = 0;   var mpt = 0;   var actDate,vchNo,f1,f2,m1,m2,row,cell;   var sugest;          for (var i=mainTable2.rows.length-7;i>1;i--){   row = mainTable2.rows;   mainTable2.firstChild.removeChild(row);   }      for(var i = 0 ; i < jsonArry.length; i++) {if (i==jsonArry.length-1){balance = jsonArry.Balance;sugest = jsonArry.Suggestion;continue;}          actDate = jsonArry.ActDate;   vchNo = jsonArry.VchNo;   f1 = jsonArry.Frec?parseFloat(jsonArry.Frec):0;   f2 = jsonArry.Fpay?parseFloat(jsonArry.Fpay):0;   m1 = jsonArry.Mrec?parseFloat(jsonArry.Mrec):0;   m2 = jsonArry.Mpay?parseFloat(jsonArry.Mpay):0;   frt += f1;   fpt += f2;   mrt += m1;   mpt += m2;   document.getElementById("frt").innerHTML = " "+frt.toFixed(2);   document.getElementById("fpt").innerHTML = " "+fpt.toFixed(2);   document.getElementById("mrt").innerHTML = " "+mrt.toFixed(2);   document.getElementById("mpt").innerHTML = " "+mpt.toFixed(2);          row = mainTable2.insertRow(i+2);   cell = row.insertCell(0);   cell.style.textAlign = "center";   cell.innerText = actDate;   cell = row.insertCell(1);   cell.style.textAlign = "left";   cell.innerText = vchNo;   cell = row.insertCell(2);   cell.style.textAlign = "right";   cell.innerText = f1;   cell = row.insertCell(3);   cell.style.textAlign = "right";   cell.innerText = f2;   cell = row.insertCell(4);   cell.style.textAlign = "right";   cell.innerText = m1;   cell = row.insertCell(5);   cell.style.textAlign = "right";   cell.innerText = m2;   cell = row.insertCell(6);   cell.style.textAlign = "right";   cell.innerText = " ";          }          frt = FormatMoney(frt,2,"");   fpt = FormatMoney(fpt,2,"");   mrt = FormatMoney(mrt,2,"");   mpt = FormatMoney(mpt,2,"");          var mbalanceVal=FormatMoney(balance,2,"");   document.getElementById("mbalance").innerHTML = " "+mbalanceVal;   if (sugest && sugest!=null && sugest!='')   document.getElementById("suggestion").value = sugest;          var adjfinance=0;   var adjMember=0;   calcuFinance(frt,fpt,mrt,mpt,balance);   calcuMember(frt,fpt,mrt,mpt,balance);   amtDiff(adjfinance,adjMember);}else{document.getElementById("frt").innerHTML = " ";document.getElementById("fpt").innerHTML = " ";    document.getElementById("mrt").innerHTML = " ";    document.getElementById("mpt").innerHTML = " ";    document.getElementById("mbalance").innerHTML = " ";    $("adjustFval").innerHTML=" ";    $("adjustMval").innerHTML=" "    $("amountdif").innerHTML=" "}}} 后台java处理返回json
 
private JSONArray getJson(AccountCheckDifference[] diffArry) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");JSONArray json = new JSONArray();for (int i = 0; i < diffArry.length; i ++) {JSONObject t = new JSONObject();try {t.put("Id", CastUtil.trimNull(diffArry.getId()));t.put("RecordId", CastUtil.trimNull(diffArry.getRecordId()));t.put("ActDate", CastUtil.trimNull(df.format(diffArry.getActDate())));t.put("VchNo", CastUtil.trimNull(diffArry.getVoucherNo()));t.put("Fpay", CastUtil.trimNull(diffArry.getFinancePay()));t.put("Frec", CastUtil.trimNull(diffArry.getFinanceReceive()));t.put("Mpay",CastUtil.trimNull(diffArry.getMemberPay()));t.put("Mrec",CastUtil.trimNull(diffArry.getMemberReceive()));} catch (JSONException e) {e.printStackTrace();}json.put(t);}return json;} 
JSONArray json = getJson(this.getListToArray(record.getDifferences()));JSONObject t = new JSONObject();try{t.put("Balance", record.getBalance());t.put("Suggestion", record.getSuggestion());}catch(Exception ex){ex.printStackTrace();}json.put(t);getRequest().setAttribute("json", json.toString()); 
js对ajax封装
/** * javascript 函数库孙钰佳 2007/3/13 创建 * 创建命名空间(由于js本身不存在命名空间,这里模拟命名空间) */if (nstc == null) var nstc = {};if (nstc.debug == null)nstc.debug = {};/** * 通过id取得控件对象,如果传入的本身就是一个对象(非String)则返回这个对象 */if (document.getElementById) {nstc.byId = function() {    var elements = new Array();    for (var i = 0; i < arguments.length; i++) {      var element = arguments;      if (typeof element == 'string') {      element = document.getElementById(element);      }      if (arguments.length == 1) {      return element;      }      elements.push(element);    }    return elements;};}else if (document.all) {nstc.byId = function() {    var elements = new Array();    for (var i = 0; i < arguments.length; i++) {      var element = arguments;      if (typeof element == 'string') {      element = document.all;      }      if (arguments.length == 1) {      return element;      }      elements.push(element);    }    return elements;};}/** * 别名 $ to nstc.byId */var $;if (!$) {$ = nstc.byId;}var $F;if(!$F){$F =function(id){return $(id).value;}}var $U;if(!$U){$U =function(id){var ret=$(id).value;if(ret!=null)return nstc.urlEncode(ret);else return null;}}/*** 去掉字符串左右的空格 */nstc.trim = function(str) {   return str==null?"":str.replace(/(^\s*)|(\s*$)/g,"");}// 最快 的变色方法不考虑性能时使用nstc.trBgColorOvernstc.trBgColorOverFast=function(s) {   //if (!s.contains(event.fromElement)) {nstc.onmouseOverOldColor = s.bgColor;s.bgColor ='#ffffcc';}   s.bgColor ='#ffffcc';}nstc.trBgColorOutFast=function(s) {   //if (!s.contains(event.toElement)) s.bgColor = nstc.onmouseOverOldColor ;   s.bgColor ='#ffffff';}//当鼠标移入tr时的颜色nstc.trBgColorOver=function (o){if(o.className!='onclicked'){o.oldClassName=o.className;o.className="mouseOver";}}//当鼠标移出tr时的颜色nstc.trBgColorOut=function (o){if(o.className!='onclicked')o.className=o.oldClassName;}//当鼠标点击tr时的颜色nstc.onclickTrBgColor=function (o){var tb=nstc.findParent(o , "TABLE");for(var i= 0 ;i<tb.rows.length;i++){var row=tb.rows;row.onclickClassName ="";if(row.className=='onclicked')row.className =row.oldClassName;}o.className='onclicked';o.onclickClassName=o.className;}//寻找一个对象的父元素nstc.findParent=function(object , tag){   if(object == null || typeof(object) != "object") return null ;   var node = object.parentElement ;   if(node == null) return null ;   if(node.tagName == tag)      return node ;   else      return nstc.findParent(node , tag) ;}//去除字符串中所有非数字,逗点的字符(负号保留)nstc.fmtNumeric = function(s){   return s.replace(/[^\d|.|-]/g , '') ;}//一个汉字按2个字符算,返回字符串长度nstc.length = function(str){var strlength=0;for (var i=0;i<str.length;i++){if(str.charCodeAt(i)>=1000)          strlength += 2;      else          strlength += 1;}return strlength;}/***********************************************************************************************///为table增加一行table对象的rowNo属性自增1nstc.addRow=function(obj,index){var tb=$(obj);var insertIndex=(index==null)?-1:index;var row = tb.insertRow(insertIndex);//新增一行if(typeof tb.rowNo=="undefined")tb.rowNo=0;tb.rowNo++;return row;}//隐藏一列tb为table对象,idx为列号从0开始nstc.hiddenTd=function(tb,idx){for(var i=0,rows=tb.rows;i<rows.length;i++) rows.cells.style.display="none";}nstc.hiddenObj=function(obj){if(obj!=null&&obj.style!=null&&obj.style.display!=null) obj.style.display="none";}/*为tr添加一个td,otr为tr对象,align为对齐方式,*obj为左对齐的对象的array, rightObj 为右对齐的对象的array*当obj不是object的时候使用innerHTML填充 *如果rightObj为空则lwidth,rwidth,isNoWrap不生效应留空*/nstc.addTd=function(otr,align,obj,rightObj,lwidth,rwidth,isNoWrap,colspan){var otd = document.createElement("td");if(typeof obj=="object"&&typeof rightObj!="undefined"&&rightObj!=null){ var subTbEle = document.createElement('<table width="100%" border="0" cellspacing="0" cellpadding="0"></table>') ; var row=subTbEle.insertRow(-1); var lNod=row.insertCell(0); var rNod=row.insertCell(1); if(isNoWrap!=false)lNod.style.whiteSpace="nowrap"; if(isNoWrap!=false)rNod.style.whiteSpace="nowrap"; rNod.style.textAlign="right";if(typeof lwidth!="undefined"&&lwidth!=null)lNod.style.width=lwidth;if(typeof rwidth!="undefined"&&rwidth!=null)rNod.style.width=rwidth;for(var i= 0 ;i< obj.length;i++)    lNod.appendChild(nstc.addTd.getObject(obj));for(var i= 0 ;rightObj!=null&&i< rightObj.length;i++)rNod.appendChild(nstc.addTd.getObject(rightObj)); otd.appendChild(subTbEle);}else if(typeof obj=="object"&&(typeof rightObj=="undefined"||rightObj==null)){for(var i= 0 ;i< obj.length;i++)otd.appendChild(nstc.addTd.getObject(obj));}elseotd.innerHTML = obj;otd.align=align;if(isNoWrap!=false)otd.style.whiteSpace="nowrap";if(colspan!=null)otd.colSpan=colspan;otr.appendChild(otd);return otd;}//nstc.addTd属性下的专业方法nstc.addTd.getObject=function(ee){if(typeof ee=="string") return nstc.createSpan("",ee);if(nstc.addTd.isHiddenInputBorder!=false){if(ee.type!='text'&& ee.type!=null)return ee;//ee.style.borderWidth='1';//ee.onmouseover=Function("if(this.readOnly!=true){this.style.borderWidth='1';this.style.backgroundColor='ffffff';}");//ee.onmouseout=Function("this.style.borderWidth='0';this.style.backgroundColor='transparent';");}return ee;}/**功能:建立一个INPUT对象参数:type-页面input元素标签的type类型(eg. text,checkbox,hidden ……) name-页面input元素的name值 value-页面input元素的value值 ext-扩展(eg. readonly,style="width:100%"……)*/nstc.createInput=function(type , name , value , ext){   if(value == null||value=="null") value = "" ;   if(ext == null)ext="";   var et = document.createElement("<input type=" + type + " name=" + name + " value='" + value + "' "+ ext +">") ;   et.id = name;   if(ext!=null&&ext.toLowerCase().indexOf('class=')<0) et.className=type;   et.initValue=value;   return et ;}//建立一个checkbox组nstc.createCheckDiv=function(name,ops,ext){   var element = document.createElement("div");   var elementHidden = nstc.createInput("hidden","h"+name);   element.id = name;   for(var i=0;i<ops.length;i=i+2) {   var chk = nstc.createInput("checkbox",name+"chk",ops," onPropertyChange=\"nstc.checkBoxChecked(this.parentNode,'finrole')\""); chk.tabIndex = -1 ;    chk.style.borderStyle = "none";    element.appendChild(chk);   var textName = document.createElement("F");   textName.innerText = ops;   element.appendChild(textName);    }    element.appendChild(elementHidden);   return element ;}//给一个checkbox组赋值nstc.checkBoxChecked=function(element,checkBoxName){var inputs = element.getElementsByTagName("INPUT");var inputsHidden;for(var i=0;i<inputs.length;i++){if(inputs.type=="hidden"){ inputsHidden = inputs;}}inputsHidden.value = "1";for(var i=0;i<inputs.length;i++){if(inputs.type=="checkbox"){if(inputs.name.startWith(checkBoxName)) {if(inputs.checked == true) {inputsHidden.value = inputsHidden.value + "1";} else {inputsHidden.value = inputsHidden.value + "0";}}}}}//建立一个下拉框nstc.createSelect=function(name,ops,ext){   var typeChars = "<select name='" + name + "' " + ext +"></select>";   var element = document.createElement(typeChars) ;   element.id = name;   for(var i=0;i<ops.length;i=i+2) element.options.add(new Option(ops,ops));   return element ;}//建立一个span元素nstc.createSpanHtml=function(name, value, ext){return "<Span name='" + name + "' " + ext +">"+value+"</Span>" ;}nstc.createSpan=function(name, value, ext){   var e = document.createElement(nstc.createSpanHtml(name, value, ext)) ;   e.id=name;   if(value != null)e.innerText=value;   return e ;}//建立一个超链接nstc.createLinkHtml=function(name, url, text, ext){   if(url==null||url==""||url=="#") url="javascript:void('NSTC');"   return "<a name=\"" + name + "\" href=\"" + url + "\" " + ext +">"+text+"</a>" ;}nstc.createLink=function(name, url, text, ext){   var element = document.createElement(nstc.createLinkHtml(name, url, text, ext)) ;   element.id=name;   element.innerText=text;   return element ;}//建立一个日期控件nstc.createDateButton=function(target){var e = document.createElement("<a onclick=\"showCalendar('"+$(target).name+"');\"></a>") ;e.appendChild(document.createElement("<span class='DateImg'>"));return e;}//建立一个删除row的按钮nstc.createRemoveInput=function(isButton,name,value,ext){var removeBut=nstc.createInput(isButton==true?"button":"checkbox",name,value==null?"删":value,ext);if(isButton==true)removeBut.onclick=Function("nstc.removeRow(this);");elseremoveBut.onpropertychange = Function("nstc.changeBgColor(this)") ;return removeBut;}//建立一个删除row的按钮nstc.createRemoveInputOth=function(isButton,name,value,ext){var removeBut=nstc.createInput(isButton==true?"button":"checkbox",name,value==null?"删":value,ext);if(isButton==true)removeBut.onclick=Function("nstc.removeRow(this);");return removeBut;}//删除obj所在的trnstc.removeRow=function(obj){var row=nstc.findParent($(obj) , "TR");var tb=nstc.findParent(row , "TABLE");    tb.deleteRow(row.rowIndex) ;}//改变obj所在tr的背景色nstc.changeBgColor=function(obj,color){var row=nstc.findParent($(obj) , "TR");    if(row == null) return null ;    if(row.oldClassName==null)row.oldClassName=row.className;    row.className = obj.checked==true?"onclicked":row.oldClassName ;}//追加事件,对一个对象只能追加一次nstc.appendEvent=function(o,et,code){if(typeof o=="string"){o=o+code;}else if(o!=null||typeof o=="function"&&o.tempFunc==null){o=o;o=function(){o();eval(code);}}else if(o==null){o=function(){eval(code);}}}//根据名称like匹配 选中checkbox 例如 参数为abc_ true 所有abc_开头的checkbox均选中 syj 07/12/23nstc.checkedAllByName=function(ne,isChecked){var objs = document.getElementsByTagName("INPUT");for(var i=0;i<objs.length;i++)if(objs.type == "checkbox"&&nstc.startWith(objs.name,ne))objs.checked=isChecked;}//根据名称like匹配 选中checkbox 例如 参数为abc_ true 所有abc_开头的checkbox均选中 syj 07/12/23nstc.checkedDivAllByName=function(ne,isChecked,div){var objs = div.getElementsByTagName("INPUT");for(var i=0;i<objs.length;i++)if(objs.type == "checkbox"&&nstc.startWith(objs.name,ne))objs.checked=isChecked;}//取元素的位置nstc.getposition=function(obj) {var r = {};r['x'] = obj.offsetLeft; r['y'] = obj.offsetTop;while(obj = obj.offsetParent) {   r['x'] += obj.offsetLeft; r['y'] += obj.offsetTop;}return r;}// c是否以s开头nstc.startWith = function(c,s){   return c.match(new RegExp("^" + s)) != null ;}//字符串转成日期类型 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd   nstc.strToDate=function(ds){      var d = new Date(Date.parse(ds));       if (isNaN(d)){            var arys= ds.split('-');         d = new Date(arys,arys-1,arys);       }    return d;   }//初始selectnstc.initSelect=function(ele,value){if(typeof(ele) != "object") ele=$(ele);ele.value=value;if(ele.selectedIndex==-1&&ele.options!=null&&ele.options.length>0) ele.selectedIndex=0;}//导出table nstc.exportExcel=function(tb){if($(tb)==null)alert("找不到待导出的表"+tb);var frm=$("_ExcelForm_");if(frm==null){frm=document.createElement("<form style='display:none;' name='_ExcelForm_' method='post' action='pages/excel.jsp' target='message' ></form>");frm.innerHTML="<input name='text' type='hidden'/>";document.body.appendChild(frm);}$('text').value = $(tb).outerHTML;frm.submit();}//打印一个对象的所有属性nstc.debug.showPrpos=function(obj){ var props = "";for(var p in obj) if(typeof(obj)=="function") obj(); else props+= p + "=" + obj + "\t";alert(props); }//单位换算 unit单位YY 亿元WY万元 QY千元nstc.calcMnyUnit=function(mny, unit) {if ("YY"==unit)return FormatMoney(Math.floor(mny / 100000000),0);else if ("WY"==unit)return FormatMoney(Math.floor(mny / 10000),0);else if ("QY"==unit)return FormatMoney(Math.floor(mny / 1000),0);return(FormatMoney(mny));}//单位换算table中的td的金额 找不到cell.mnyParent对应的引用,取最右侧的控件进行折算nstc.calcInnerHTMLMnyUnit=function(cell,unit){if(cell.mny==null&&nstc.trim(cell.innerText)=='')return ;cell.style.textAlign='right'var e=cell.mnyParent==null?cell.childNodes:cell.mnyParent;e=e==null?cell:e;var isObj=typeof(e.innerText)=="undefined";var value=isObj?e.nodeValue:e.innerText;if(cell.mny==null)cell.mny=nstc.fmtNumeric(value);var money=nstc.calcMnyUnit(cell.mny,unit);if(isObj) e.nodeValue=' '+money;else e.innerText=money; }//单位换算table中的td的金额:tb对象,tr起始行startIdx,td的index数组list,单位unit YY 亿元WY万元 QY千元 当list值为['*']且TD的hasMnyUnit属性不为null时折算该TDnstc.calcMnyUnitOfTb=function(tb,list,unit,startIdx){for(var i=startIdx==null?1:startIdx;i<tb.rows.length;i++){var cells=tb.rows.cells;if(list=='*'){for(var k= 0 ,size=cells.length; k<size; k++)if(cells.hasMnyUnit!=null)nstc.calcInnerHTMLMnyUnit(cells,unit);}else{for(var k= 0 ; k<list.length;k++){var tmp=list-(cells.colSpan-1);nstc.calcInnerHTMLMnyUnit(cells,unit);}}}}//移除一个table从index开始的全部TR index指row.rowIndex id为table的id或table对象nstc.removeTbRows = function (id, index) {for (var tb = $(id), index = (index == null) ? 1 : index; (tb.rows.length - 1) >= index; )tb.deleteRow(tb.rows.length - 1);}nstc.urlEncode=function(str){var i,c,ret="",strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";for(i=0;i<str.length;i++){c=str.charAt(i);if(c==" ")ret+="+";else if(strSpecial.indexOf(c)!=-1)ret+="%"+str.charCodeAt(i).toString(16);elseret+=c;}return ret;}/** *   将一个页面中的所有控件变为只读并去掉边框 注:一个需要设为只读的对象如果有同级的兄弟结点,那么这些兄弟结点会消失 解决办法:将这个对象放在<span>或<lable>中 *   create by zhj rebuild by syj **/nstc.readOnlyPage=function(doc){doc=doc==null?document:doc;for(var objs=doc.getElementsByTagName("INPUT"), n=objs.length;n>0;n--){//需要在数组中,从后往前遍历,否则会出现有些数组中的有些对象访问不到var obj = objs;var type = obj.type;if(type == "text"){var txtValue = obj.value;if( txtValue == "" ) txtValue = " "obj.parentElement.innerHTML = txtValue;}else if(type == "checkbox"){obj.onclick=function(){this.checked=!this.checked}}else if(type == "radio"){    obj.disabled=true;}else if(type == "button"){obj.style.display = "none";}else if(type == "reset"){obj.style.display = "none";}else if(type == "file"){obj.style.display = "none";}}for(var objs = doc.getElementsByTagName("SELECT"),n=objs.length;n>0;n--){var obj = objs;if(obj.selectedIndex >= 0) {obj.parentElement.innerHTML = obj.options(obj.selectedIndex).text;} else {obj.parentElement.innerHTML = " ";}}for(var objs = doc.getElementsByTagName("TEXTAREA"),n=objs.length;n>0;n--){var obj = objs;obj.parentElement.innerHTML = obj.innerHTML;}}//为nstcExt提供可插拔的机制if(nstc.msgBox==null)nstc.msgBox=function(m){alert(m);}/***********************************************************************************************//*封装好的xmlHttp对象 *method: initRequest,doGet */nstc.AjaxObject = function(){this.initRequest = initRequest;this.doGet = doGet;    var httpRequest;var isSync;   function initRequest(responseFunction,type,isSync1){isSync=isSync1;if(isSync==null)isSync=false;    if (window.ActiveXObject){ // 浏览器是IE    try{httpRequest = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){try{httpRequest = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){}}    }else if (window.XMLHttpRequest){ // 浏览器是非IE,如Mozilla, Safari,...    httpRequest = new XMLHttpRequest();    if (httpRequest.overrideMimeType)httpRequest.overrideMimeType('text/xml');    }    if (!httpRequest){alert('放弃请求不能创建XMLHTTP实例'); return false;}    httpRequest.onreadystatechange = function(){    if (httpRequest.readyState == 4){    if (httpRequest.status == 200){    var doc;if(type=='text') doc = httpRequest.responseText;else doc = httpRequest.responseXML;if(doc==null){return ;}if( responseFunction == null ) return;if( typeof(responseFunction) != "function" ) return;responseFunction(doc);    }else{responseFunction(null);}    }      }      return true;    }    function doGet(url){    if(isSync==false) httpRequest.open('GET', initUrl(url),false);    else httpRequest.open('GET', initUrl(url));      httpRequest.send(null);      return true;    }    function initUrl(url){    if(url.indexOf('machineDate')==-1){if(url.indexOf('?')==-1) url+="?machineDate="+new Date().getTime();else url+="&mechineDate="+new Date().getTime();return url;    }}}/** * 功能:克隆对象 * 参数:obj-待克隆对象,index-克隆后对象附加名 * 返回:克隆后对象 */nstc.clone=function(obj,index,value,onchgCheckbox){var cloneObj=obj.cloneNode(true);if(index!=null){if(obj.name!=null)cloneObj.name=obj.name+"_"+index;if(obj.id!=null)cloneObj.id=obj.id+"_"+index;}if(onchgCheckbox!=null)cloneObj.onchange=function(){onchgCheckbox.checked=true;}nstc.initSelect(cloneObj,value);return cloneObj;}/**功能: 建立一个日期格式文本框参数:name-名字   value-值   ext-扩展 */nstc.createDate=function(name , value , ext){var e=ext;var spanObj=document.createElement("<span style='width: 100%'></span>");var textObj=nstc.createInput("text",name,value,e);textObj.className='DateText';var dateButton=nstc.createDateButton(textObj);spanObj.appendChild(textObj);spanObj.appendChild(dateButton);return spanObj;}//回传对象方法(func),待回传的对象(obj),如果func不返回false,回传后关闭窗口nstc.setObj=function(func,obj){if(window.opener!=null&&opener!=null){var isClose=opener(obj);if(isClose!=false)self.close();}else if(parent!=null&&parent!=null){var isClose=parent.setKm(akm);if(isClose!=false)self.close();}else{}}//回传对象方法(func),待回传的对象数组(list),如果func不返回false,回传后关闭窗口nstc.setArr=function(func,arr){if(window.opener!=null&&opener!=null){var isClose=opener(arr);if(isClose!=false)self.close();}else if(parent!=null&&parent!=null){var isClose=parent.setKm(akm);if(isClose!=false)self.close();}else{}}/** * 功能:计算两个日期之差 * 参数:sDate-开始日期,eDate-结束日期,resultType-返回类型(d-日,week-星期,m-月,y-年默认为日) * 返回:两日期之差 */nstc.DateDiff=function(sDate,eDate,resultType){   var miStart = Date.parse(sDate.replace(/\-/g, '/'));   var miEnd = Date.parse(eDate.replace(/\-/g, '/'));   var radix=1000 * 24 * 3600;   var divisor=1;   if(resultType==null||resultType=="d")   divisor=radix;   else if(resultType=="w")   divisor=radix*7;   else if(resultType=="m")   divisor=radix*30;   else if(resultType=="y")   divisor=radix*365;   return (miEnd-miStart)/divisor;} //判断结束日期是否早于开始日期nstc.checkDates=function(sdate,edate,msg){msg=msg==null?"结束日期须晚于开始日期":msg;if(nstc.DateDiff($F(sdate),$F(edate))<0){nstc.msgBox(msg);return false;}return true;}//日期文本框输入自动加-nstc.dateInput=function(obj){if(obj.value=="    --")obj.value="";} 
页: [1]
查看完整版本: ajax返回json