Ajax util

/**
* 引用方法
* <script src="/html/js/util.js" type="text/javascript"></script>
*/

/**
* 获取文本域(textarea,input.text)中的光标位置
* 对于有换行的textarea,IE认为两行间无字符,Firefox认为两行间有一个字符
*/
function getCursorPos(event){
var obj = event.target||event.srcElement;
if(document.selection) {
if(obj.tagName!=undefined&&obj.tagName=='INPUT'){
var s=document.selection.createRange();
s.setEndPoint("StartToStart",obj.createTextRange());
return s.text.length;
} else {
var rng = obj.createTextRange();
rng.moveToPoint(event.x,event.y);
rng.moveStart("character",-obj.value.length);
var str = rng.text.replace(/\r\n/g,''); // 替换回车换行符
return str.length ;
}
} else {
return obj.selectionStart;
}
};

/**
* 控制输入框的状态
*/
function InputController(){}
InputController.disableButtons= function( buttonArray ){
for( var i=0 ; i< buttonArray.length ;i++ ){
var btn = document.getElementById( buttonArray[i] ) ;

if( btn && ! btn.disabled){
btn.disabled = true ;
}
}
};

InputController.enableButtons = function ( buttonArray ){
for( var i=0 ; i< buttonArray.length ;i++ ){
var btn = document.getElementById( buttonArray[i] ) ;
if( btn && btn.disabled ){
btn.disabled = false ;
}
}
};

/**
* 只允许输入数字
*/
InputController.onlyPermitNumcheck = function (e){
var ev = e || window.event;
var t = ev.keyCode || ev.charCode || ev.which;
if((t>=48&&t<=57)||t==13|| t == 8 || t == 37 || t == 39){
return true;
}else{
return false;
}
};

/**
* 只允许整数输入包括正负数
*/
InputController.onlyPermitSignedInteger = function (e){
var ev = e || window.event;
var t = ev.keyCode || ev.charCode || ev.which;
var inputObj = ev.target || ev.srcElement;
var allow = false;
if((t >= 48 && t <= 57) || t == 13 || t == 45 || t == 8 || t == 37 || t == 39){
if (t == 45) {
if (inputObj.value.indexOf("-") == -1 && getCursorPos(ev) == 0) {
allow = true;
}
} else {
allow = true;
}
}
return allow;
};

/**
* 只允许非负整数输入
*/
InputController.onlyPermitInteger = function (e){
var ev = e || window.event;
var t = ev.keyCode || ev.charCode || ev.which;
var inputObj = ev.target || ev.srcElement;
var allow = false;
if((t >= 48 && t <= 57) || t == 13 || t == 8 || t == 37 || t == 39){
allow = true;
}
return allow;
};

/**
* 只允许输入正负实数
*/
InputController.onlyPermitSignedFloat = function (e){
var ev = e || window.event;
var t = ev.keyCode || ev.charCode || ev.which;
var inputObj = ev.target || ev.srcElement;
var allow = false;
if((t >= 48 && t <= 57) || t == 13 || t == 45 || t == 8 || t == 37 || t == 39 || t == 46){
if (t == 45) { // " - "
if (inputObj.value.indexOf("-") == -1 && getCursorPos(ev) == 0) {
allow = true;
}
}
else if (t == 46) { // " . "
if (inputObj.value.indexOf("-") > -1
&& inputObj.value.indexOf(".") == -1
&& getCursorPos(ev) > 0) {
allow = true;
}
if (inputObj.value.indexOf("-") == -1
&& inputObj.value.indexOf(".") == -1) {
allow = true;
}
}
else {
allow = true;
}
}
return allow;

};

/**
* 只允许非负实数输入
*/
InputController.onlyPermitFloat = function (e){
var ev = e || window.event;
var t = ev.keyCode || ev.charCode || ev.which;
var inputObj = ev.target || ev.srcElement;
var allow = false;
if((t >= 48 && t <= 57) || t == 13 || t == 8 || t == 37 || t == 39 || t == 46){
if ( t == 46) { // " . "
if (inputObj.value.indexOf(".") == -1) {
allow = true;
}
}
else {
allow = true;
}
}
return allow;
};

/**
* 客户端时间获取工具类
*/
var clientDateUtil = {
/**
* 工具类方法
* @return 当前客户端时间
* 格式: 2006-06-12
* @author 陈志平
* @date 2006-03-17
*/
getToday : function () {
var myDate = new Date();
var month = myDate.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
var day = myDate.getDate();
if (day < 10) {
day = "0" + day;
}
return myDate.getFullYear() + "-" + month + "-" + day;
},

/**
* 工具类方法
* @return 当前年份的第一天时间
* 格式: 2006-06-01
* @author 陈志平
* @date 2006-03-17
*/
getYearFirstDate:function () {
var myDate = new Date();
return (myDate.getFullYear() + "-01-01");
},

/**
* 工具类方法
* @return 当前月份的第一天时间
* 格式: 2006-06-01
* @author 陈志平
* @date 2006-03-17
*/
getMonthFirstDate : function () {
var myDate = new Date();
var month = myDate.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
return (myDate.getFullYear() + "-" + (month) + "-01");
},

/**
* 工具类方法
* @return 上个月份的第一天时间
* 格式: 2006-06-01
* @author 陈志平
* @date 2006-03-17
*/
getLastMonthFirstDate : function () {
var myDate = new Date();
var myYear = myDate.getFullYear();
var month = myDate.getMonth();
if(month==0){
month = 12;
myYear = myYear-1;
}
if (month < 10) {
month = "0" + month;
}
return ( myYear+ "-" + (month) + "-01");
},

/**
* 工具类方法
* @return 当前月份的最后一天时间 格式: 2006-06-30
* @author 陈志平
* @date 2006-03-17
*/
getMonthEndDate : function () {
var myDate = new Date();
var expres = myDate.getMonth() + 1;
switch (expres) {
case 1:
case 3:
case 5:
case 7:
case 8:
return (myDate.getFullYear() + "-0" + expres + "-31");
case 10:
case 12:
return (myDate.getFullYear() + "-" + expres + "-31");
case 2:
return (myDate.getFullYear() + "-0" + expres + "-28");
case 4:
case 6:
case 9:
return (myDate.getFullYear() + "-0" + expres + "-30");
case 11:
return (myDate.getFullYear() + "-" + expres + "-30");
}
},

/**
* 工具类方法
*
* @return 获取距今几个月后的一天,格式 2008-12-16
*/
getMonthsLaterToday : function(month) {
getMonthsLater(new Date(), month);
},

/**
* 获取距离所给时间后几个月的日期
*
* @param {} when
* @param {} month
* @return {Boolean}
*/
getMonthsLater : function(when, month) {
if(month == null) month = 3;
if(!when instanceof Date){
alert("必须输入一个Date!");
return false;
}
var myDate = when;
var myYear = myDate.getFullYear();
var myDay = myDate.getDate();
var myMonth = myDate.getMonth() + 1;
myMonth = myMonth + month;
if(myMonth > 12) {
myYear = myYear + myMonth / 12;
myMonth = myMonth % 12;
}
if(myMonth < 10) {
myMonth = "0" + myMonth;
}
return (myYear + "-" + myMonth + "-" + myDay);
},

/**
* 获取 from 和 to 间的时间差
*
* @param {} from '2002-01-01'
* @param {} to '2003-01-01'
* @param {} mondiff 按月、季、年? 1-月,3-季,12-年
*/
getTimeDiff : function(from, to, mondiff) {
if(!from || !to) {
return false;
}
from = from.replace(/-/g, "/");
to = to.replace(/-/g,"/");
from = new Date(from);
to = new Date(to);
to.setDate(to.getDate()+1);//to 取至 23:59:59
var diffTime = to.getTime() - from.getTime();
if(isNaN(diffTime) || diffTime < 0){
alert("输入日期格式不正确!");
return false;
}
var dayDiff = parseInt(diffTime / (1000 * 60 * 60 * 24));
var monthDiff = to.getMonth() - from.getMonth();
monthDiff += (to.getFullYear() - from.getFullYear()) * 12;
var resultDiff = parseInt(monthDiff / mondiff);
var newfrom = getMonthsLater(from, mondiff);
newfrom = new Date(newfrom.replace(/-/g,"/"));
var dayPlus = parseInt((to.getTime() - newfrom.getTime()) / (1000 * 60 * 60 * 24));
return { diff: resultDiff, day: dayPlus, dayDiff : dayDiff};
},

/**
* 获取year年month月有几天
* @param {} year
* @param {} month
*/
getMonthDays : function(year,month) {
year = parseInt(year);
month = parseInt(month);
var days=0;
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
case 4: case 6: case 9: case 11: days=30;break;
case 2: if(isLeapYear(year)) days=29;
else days=28;
break;
}
return days;
},

/** 判断是否闰年 */
isLeapYear :function (year) {
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
}


/**
* 级联的下拉列表
*
* @param {String} val: 源下拉列表的值
* @param {String} url: 请求的url,action必须返回下拉列表 所有值的xml数据,可参考CommonDataAction.java(getIdcCustomer)
* @param {String} casadeSelid: 关联的下拉列表的id
*/
var selectUtil = {
hasquerybtn :false,
doOnChange : function(val,url,casadeSelid,bquery) {
this.hasquerybtn = bquery;
if(val == "" ||val ==null){
var selObj = document.getElementById(casadeSelid);
if(selObj && selObj.options && selObj.options.length > 0){
selObj.options.length = 0;
}
return false;
}
if(typeof(dtmlXMLLoaderObject)=="function"){
var xml = new dtmlXMLLoaderObject(this.initSelect,[casadeSelid,this.hasquerybtn],true,true);
xml.loadXML(url);
}else{
alert("请引入dtmlxcommon.js文件");
return false;
}
},

initSelect: function (obj,b,c,d,xml){
//do check
var options = xml.doXPath("//option");
var selObj = document.getElementById(obj[0]);
if(selObj && selObj.options && selObj.options.length > 0){
selObj.options.length = 0;
}
for (var i=0; i<options.length; i++) {
var text = options[i].firstChild?options[i].firstChild.nodeValue:"";
var value = options[i].getAttribute("value");
selObj.options[i] = new Option(text,value);
if(options[i].getAttribute("selected")=="1"){
selObj.options[i].selected = true;
}
}
if(obj[1]==true && typeof(inititalQuery)=="function"){
inititalQuery(obj[0]);
}
if(typeof(selObj.onchange)=="function"){
selObj.onchange();
}
},

// 删除选项
deleteOption : function (select,value){
if(typeof(select) != 'object'){
alert("参数一必须是select对象");
return false;
}

var opts = select.options;
for(var opt in opts){
if (opt.value == value){
select.remove(opt);
}
}
}
}


/**
* 格式化占位符 Each token must be unique, and must increment in the format {0}, {1}, etc. Example usage:
* <pre><code>
var cls = 'my-class', text = 'Some text';
var s = String.format('<div class="{0}">{1}</div>', cls, text);
// s now contains the string: '<div class="my-class">Some text</div>'
</code></pre>
* @param {String} string The tokenized string to be formatted
* @param {String} value1 The value to replace token {0}
* @param {String} value2 Etc...
* @return {String} The formatted string
* @static
*/
String.format = function(format){
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/\{(\d+)\}/g, function(m, i){
return args[i];
});
}

// 检查字符串是否为空串
String.isEmpty=function(chkStr) {
if (chkStr == null) {
return true;
}

if (typeof(chkStr) == 'undefined') {
return true;
}

if (typeof(chkStr) == 'string') {
chkStr = chkStr.trim();
}

if (chkStr == "" || chkStr == "null" || chkStr == " ") {
return true;
}

return false;
}

// 检查字符串是否不为空串
String.isNotEmpty=function(chkStr) {
if (chkStr == null) {
return false;
}

if (typeof(chkStr) == 'undefined') {
return false;
}

if (typeof(chkStr) == 'string') {
chkStr = chkStr.trim();
}

if (chkStr == "" || chkStr == "null" || chkStr == " ") {
return false;
}

return true;
}

// 删除字符串前后空格(含中文全角)
String.prototype.trim = function() {
// 用正则表达式将前后空格
// 用空字符串替代
return this.replace(/(^(\s|[\u3000])*)|((\s|[\u3000])*$)/g, "");
}

// 删除字符串左边空格(含中文全角)
String.prototype.lTrim = function() {
return this.replace(/(^(\s|[\u3000])*)/g, "");
}

// 删除字符串右边空格(含中文全角)
String.prototype.rTrim = function() {
return this.replace(/((\s|[\u3000])*$)/g, "");
}

var JsonUtil = {
callback : function(jsonText){
var json = eval(jsonText);
alter(json.msg);
return json.success;
}
}

function LoadUtil(){
}
LoadUtil.show = function(tipMsg) {
if(!tipMsg){
tipMsg = "正在处理中,请稍候...";
}
jQuery.blockUI({
message : tipMsg
});
};

LoadUtil.hide = function() {
jQuery.unblockUI();
}

LoadUtil.showMask = LoadUtil.show;
LoadUtil.hideMask = LoadUtil.hide;

/**
* 显示和隐藏select控件
*
* @param {Object} val:0-隐藏;1-显示
*/
function dispalySelect(val){
var arrdispalyType=["hidden","visible"];
var arrObjSelect=document.getElementsByTagName("select");
for (var i=0; i < arrObjSelect.length; i++){
arrObjSelect[i].style.visibility = arrdispalyType[val];
}
}

function selectQueryUtil(){}

/**
* 初始化备份下拉框
* @param {Object} originalSelectId
*/
selectQueryUtil.inititalQuery = function(originalSelectId) {
var oSelect1 = document.getElementById(originalSelectId);
var oOption1 = oSelect1.options;
var tmpid = "oSelect"+ originalSelectId;
var oSelect = document.getElementById(tmpid)
if(!oSelect){
oSelect = document.createElement("SELECT");
oSelect.name = "oSelect"+ originalSelectId;
oSelect.id = "oSelect"+ originalSelectId;
oSelect.style.display="none";
}else{
//清空原来的
oSelect.options.length = 0;
}

// 将源下列框赋值到备份下列框
for (var i=0; i<oOption1.length; i++) {
var oOption = new Option(oOption1[i].text,oOption1[i].value);
oSelect.options.add(oOption);
}
document.body.appendChild(oSelect);
}

/**
* 对父下拉框进行二次查询
* @param {Object} originalSelectId
*/
selectQueryUtil.secondQuery = function (originalSelectId) {
var query = document.getElementById("txtQuery"+originalSelectId).value;
var oSelect1 = document.getElementById(originalSelectId);
var oOption1 = oSelect1.options;
var oSelect2 = document.getElementById("oSelect"+ originalSelectId);
var oOption2 = oSelect2.options;

// 清空查询下拉框
oSelect1.options.length = 0;

// 将符合条件的结果赋值到查询下列框
for (var i=0; i<oOption2.length; i++) {
var text = oOption2[i].text;
if (query==""||text.indexOf(query) >= 0) {
var oOption = new Option(text,oOption2[i].value);
oSelect1.options.add(oOption);
}
}
if(typeof(oSelect1.onchange)=='function'){
oSelect1.onchange();
}
}

/**
* 打开模式窗口,返回结果。
* 这个方法会延长窗口会话,防止弹出会话过期的提示;
* 同时,会把当前窗口对象传给新窗口 window.dialogArguments.opener
*/
function openModalDialog(url, args, style) {
refreshSession();
if (args == null) {
args = new Object();
}
args.opener = window;
return window.showModalDialog(url, args, style);
}

/**
* 延长会话,用于弹出窗口时 以及 ajax 调用
*/
function refreshSession() {
var lportal;
if (typeof(Liferay)=='undefined') {
// 是弹出窗,调用父窗口的对象。
// 前提是子窗口必须通过父窗口调用 openModalDialog 生成
lportal = window.dialogArguments.opener.Liferay;
}
else {
lportal = Liferay;
}
if(lportal){
lportal.Session.refresh();
}
}

function AjaxUtil(){}

/**
* ajax 调用
*
* 如果回调需要参数较多,可以直接传递Array类型,这时候必须要配置dataType
*/
AjaxUtil.doPost = function(targetUrl, options, callback, dataType, callbackArgs){

if(!dataType){
dataType = "text";
}
// 延长会话
refreshSession();
jQuery.blockUI({ message: "<div style='font-family:Arial;font-size:15pt;'>正在处理中,请稍候...</div>" });
jQuery.ajax(
{
type: 'POST',
url: targetUrl,
data: options,
dataType: dataType,
cache: false,
success: function(data, textStatus){
jQuery.unblockUI();
if(callbackArgs) {
callback(data, callbackArgs);
} else {
callback(data);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown){
jQuery.unblockUI();
alert("调用ajax出错:"+ textStatus + " " + errorThrown);
}
}
);
}

/**
* form post 调用
* targeturl : 远程URL
* data : Object对象,如 { id : 'xxx'}
*/
function postForm(targeturl, data, blank){
if(!data || !targeturl) return;
// 取消按钮的点击事件
jQuery(".btn").unbind( "click" );
jQuery(":button").attr("disabled","true");
jQuery(document.createElement('form')).attr('id','_temp_post').attr('name','_temp_post').prependTo("body");
if(blank) {
jQuery('#_temp_post').attr('target','_blank');
}
for(var i in data){
jQuery(document.createElement('input')).attr('type','hidden').attr('name',i).attr('value',data[i]).prependTo('#_temp_post');
}
jQuery('#_temp_post').attr('action',targeturl).attr('method','post');
document.getElementById('_temp_post').submit();
}

function getDomValue(id){
var elem = document.getElementById(id);
if(elem){
return elem.value;
}
}

function setDomValue(id,val){
var elem = document.getElementById(id);
if(elem){
elem.value = val;
return;
}
}

function getSelectedText(id){
var elem = document.getElementById(id);
if(elem && elem.selectedIndex != -1){
return elem.options[elem.selectedIndex].text;
}
return null;
}

function setSelectedText(id, text){
var elem = document.getElementById(id);
if(elem && elem.options && elem.options.length > 0){
for(var i = 0; i < elem.options.length; i++){
var opt = elem.options[i];
if(opt.text == text){
opt.selected = true;
return true;
}
}
}
return false;
}
function setSelectedValue(id, value){
var elem = document.getElementById(id);
if(elem && elem.options && elem.options.length > 0){
for(var i = 0; i < elem.options.length; i++){
var opt = elem.options[i];
if(opt.value == value){
opt.selected = true;
return true;
}
}
}
return false;
}

function unique(source){
var src = source.split(",");
var tmp = new Object();
for(var i=0; i<src.length; i++){
tmp[src[i]]=src[i];
}
var ret = [];
for(var j in tmp) {
ret.push(j);
}
return ret.join();
}

/**
* 过滤以“,”分割的数组字符串,返回非负数
*/
function negFilter(source){
var re = /(-\d+,)|(-\d+$)/g;
//var n = s.match(re).join(""); // 负数集
var p = ""
var q = source.replace(re,"");
if(q != null) p = q.replace(/,+$/g,"");// 正数集
return p;
}

function isNum(value) {
return /^\d+$/.test(value);
}

/**
* 将source的值取保留小数点后length位
*/
function setFixed(source, length) {
var val = getDomValue(source)*1;
setDomValue(source, val.toFixed(length));
}

/**
* 把一个浮点数限制为最多为max_length位小数
* 如果小数位为末尾为0,同时把0去掉
*/
function ingoreTail(value, max_length){
value = value*1.0;
value = value.toFixed(max_length); //取length位小数
value += "";
while(1){
var len = value.length;
var lstChar = value.substring(len-1, len);
if(lstChar == '0'){
value = value.substring(0, len-1);
} else if (lstChar == '.'){
value = value.substring(0, len-1);
break;
} else {
break;
}
}
return value;
}


/**
* 从JSON数组对象构建下拉框列表
* @param id 下拉元素ID
* @param jsonArr JSON数组
* @param key 下拉框值的JSON名称
* @param value 下拉框显示项的JSON名称
*/
function buildSelectFromJson(id, jsonArr, key, value) {
if(typeof jsonArr == 'string') {
alert("必须传入JSON数组对象");
return false;
}
var selObj = document.getElementById(id);
if(selObj && selObj.options && selObj.options.length > 0){
selObj.options.length = 0;
}
if(selObj) {
selObj.json = jsonArr;
selObj.options[0] = new Option("","");
for (var i=0; i<jsonArr.length; i++) {
var json = jsonArr[i];
selObj.options[i+1] = new Option(json[value],json[key]);
}
return true;
}
return false;
}

/**
* 从下拉框中删除指定值的下拉选项
* @param {} selectId
* @param {} optionValue
* @return {Boolean}
*/
function removeSelectOptionByValue(selectId, optionValue) {
var selObj = document.getElementById(selectId);
if (selObj && selObj.options && selObj.options.length > 0) {
for (var i=0; i<selObj.options.length; i++) {
if (selObj.options[i].value == optionValue) {
selObj.removeChild(selObj.options[i]);
return true;
}
}
}
return false;
}

/**
* 从下拉框中删除指定显示值的下拉选项
* @param {} selectId
* @param {} optionValue
* @return {Boolean}
*/
function removeSelectOptionByText(selectId, optionText) {
var selObj = document.getElementById(selectId);
if (selObj && selObj.options && selObj.options.length > 0) {
for (var i=0; i<selObj.options.length; i++) {
if (selObj.options[i].text == optionText) {
selObj.removeChild(selObj.options[i]);
return true;
}
}
}
return false;
}

/**
* 在流程图上表示当前步骤
*/
function showStep(id, imgid, coords) {
if (!id || !imgid || !coords)
return;

var arr = coords.split(',');
var param = {};
param.width = arr[2] - arr[0];
param.height = arr[3] - arr[1];
param.left = arr[0] * 1 + jQuery("#" + imgid).offset().left;// + (window.x || 2);
param.top = arr[1] * 1 + jQuery("#" + imgid).offset().top;// + (window.y || 2);
var e = document.createElement('div');
for (var tt in param) {
e.style[tt] = param[tt] + "px";
}
e.style.position = "absolute";
e.style.border = "2px solid #FF66CC";
e.id = "e_step_div";
document.getElementById(id).appendChild(e);
var divId = "#" + id + " div";

setInterval(function(){jQuery(divId).toggle()}, 650);
};

function isDigit(s)
{
var patrn=/^\d+(\.\d+)?$/;
if (!patrn.exec(s)) {
return false;
}
return true;
}

//开始日期和结束日期的比较
function compareDate(start,end){
var startDate = new Date(start.replace(/-/g, "/"));
var endDate = new Date(end.replace(/-/g, "/"));

if (Date.parse(startDate) - Date.parse(endDate) > 0){
return -1;
}
else if (Date.parse(startDate) - Date.parse(endDate) == 0){
return 0;
}
else{
return 1;
}
}

//将date型转化为String型
Date.prototype.format = function(format){
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));
return format;
}

//以下为wangsl加2011.1.18
/*
* 用于导出Excel选择导出列和合计列
*/
var gf_showCols;///显示列
var gf_compCols='';///计算列
var gf_headCols;列头
var gf_headers;/所有列头
var gf_colIds;/所有列名
var gf_colType;列类型
function gf_doExcelFilter(colType)
{
///var headers = gridCols.getColHeaders();
///var colIds = gridCols.getColIds();
var winstyle = 'dialogWidth:450px;dialogHeight:400px;edge:Raised;help:no;resizable:no;status:no;location:no;';
var url = "/html/common/filter.jsp";
var myobj = new Object();
myobj.head=gf_headers;列头
myobj.col=gf_colIds;
myobj.colType=colType;
myobj.showcol=gf_showCols;
myobj.compcol=gf_compCols;
var res = openModalDialog(url,myobj,winstyle);
if(res)
{
gf_showCols = gf_arraytostring(res.showCol);
gf_headCols = gf_arraytostring(res.colHead);
gf_colType = gf_arraytostring(res.colType);
if(res.comCol)
gf_compCols=gf_arraytostring(res.comCol);
else
gf_compCols="";
///alert(gf_showCols);
///alert(gf_headCols);
///alert(gf_compCols);
///alert(gf_colType);
document.getElementById("showCols").value=gf_showCols;
document.getElementById("compCols").value=gf_compCols;
document.getElementById("headCols").value=gf_headCols;
document.getElementById("typeCols").value=gf_colType;
}
}
/*
*初始化列,墨认全部
*/
function gf_initCols(arr1,arr2,arr3)
{
gf_showCols=gf_arraytostring(arr1);
gf_headCols=gf_arraytostring(arr2);
gf_headers=gf_headCols;
gf_colIds=gf_showCols;
gf_colType=gf_arraytostring(arr3);
}
/*
把数组转换成字符串,用,隔开
*/
function gf_arraytostring(arr)
{
if(arr)
{
var ret="";
for(var i=0;i<arr.length;i++)
{
ret=ret+arr[i]+",";
}
return ret.substring(0,ret.length-1);
}
else
{
return '';
}
}

//浮点数加法运算
function FloatAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}

//浮点数减法运算
function FloatSub(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
//动态控制精度长度
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}

//浮点数乘法运算
function FloatMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}


//浮点数除法运算
function FloatDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

/**
* 相应Grid列表头的CheckBox选择事件
* @param grid Grid
* @param target 列表头
* @param clo 哪一列
*/
function checkBoxToggle(grid,target,clo){
target.toggle(
function () {
//设置Gird为全选
grid.setColumnsValue(clo, 1);
target.attr("src","/html/js/dhtmlxgrid/imgs/item_chk1.gif");
},
function () {
//设置Gird为全不选
grid.setColumnsValue(clo, 0);
target.attr("src","/html/js/dhtmlxgrid/imgs/item_chk0.gif");
}
);
}

function serializeObject() {
var o = {};
var a = jQuery('form').serializeArray();
jQuery.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});

return jsonToString(o);
}

//转换json为string
function jsonToString(obj){
var THIS = this;
switch(typeof(obj)){
case 'string':
return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';
case 'array':
return '[' + obj.map(THIS.jsonToString).join(',') + ']';
case 'object':
if(obj instanceof Array){
var strArr = [];
var len = obj.length;
for(var i=0; i<len; i++){
strArr.push(THIS.jsonToString(obj[i]));
}
return '[' + strArr.join(',') + ']';
}else if(obj==null){
return 'null';

}else{
var string = [];
for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property]));
return '{' + string.join(',') + '}';
}
case 'number':
return obj;
case false:
return obj;
}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值