js 校验


/**
 * 设置上下文路径
 */
var basePath="";
function setContextPath(path){
	var url = window.location.href;
	if(url.indexOf("http://emis3.jx.chinamobile.com", 0) != -1){
		url = url.replace("http://emis3.jx.chinamobile.com", "http://10.181.37.71:8080");
		if(url.indexOf("mypcms/pcms", 0) != -1){
			url = url.replace("mypcms/pcms", "pcms");
		}
		window.location.href = url;
	}
	
    basePath=path;
}
function getContextPath() {
	return basePath;
}

/**
 * 弹出窗口
 */
function openWindow(url, name, iWidth, iHeight) {
	var url; // 转向网页的地址;
	var name; // 网页名称,可为空;
	var iWidth; // 弹出窗口的宽度;
	var iHeight; // 弹出窗口的高度;
	// 获得窗口的垂直位置
	var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
	// 获得窗口的水平位置
	var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
	window
			.open(
					url,
					name,
					'height='
							+ iHeight
							+ ',innerHeight='
							+ iHeight
							+ ',width='
							+ iWidth
							+ ',innerWidth='
							+ iWidth
							+ ',top='
							+ iTop
							+ ',left='
							+ iLeft
							+ ',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=1,titlebar=no');
}

function openDialogWindow(url, name, iWidth, iHeight) {
	var url; // 转向网页的地址;
	var name; // 网页名称,可为空;
	var iWidth; // 弹出窗口的宽度;
	var iHeight; // 弹出窗口的高度;
	// 获得窗口的垂直位置
	var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
	// 获得窗口的水平位置
	var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
	window
			.showModalDialog(
					url,
					name,
					'dialogHeight:'
							+ iHeight
							+ ';dialogWidth:'
							+ iWidth
							+ ';dialogTop:'
							+ iTop
							+ ';dialogLeft:'
							+ iLeft
							+ ';status:0;help:1;resizable:1;');
}
/**
 * ============== 验证是否为数字,point小数点位数是否正确 ===============
 */
function isAmount(obj,point,infoMessage) {
	if (!checkDecimal(obj.value,point, infoMessage)) {
		mouseMoveLast(obj);
		return false;
	}
	return true;
}
	
/**
 * ================= 判断单个下拉列表框是否选择相应的值 =================
 */
function isCheckForSelect(name, messsage) {
	var sel = document.getElementsByName(name)[0].value;
	sel = trim(sel);
	if (sel == null || sel.length == 0) {
		return messsage + "\n";
	}
	return "";
}
/**
 * 用于选择条目返回Id(type为空或者0时用于选择信息带入,1为选择删除)包括单选和多选
 */
function selectValue(checks, type) {
	var count = 0, i = 0;
	var str = "", message = "";
	if (isempty(type) || type == 0) {
		message = "请选择一条记录!"
	} else if (type == 1) {
		message = "请选择需要删除的项!"
	} else if (type == 2) {
		message = "请选择需要下达的项!"
	}
	if (checks == undefined) {
		quickMsg("无记录!");
	}
	if (checks && checks.length) {
		for (var i = 0; i < checks.length; i++) {
			if (checks[i].checked) {
				count++;
				if (count == 1) {
					str = checks[i].value;
				} else {
					str = checks[i].value + "," + str;
				}
			}
		}
		if (count == 0) {
			quickMsg(message);
		}
	} else if (checks && !checks.checked) {
		quickMsg(message);
	} else {
		str = checks.value;
	}
	return str;
}

function toExcel(tableid) {
	 // addtable(tableid);
	  try{ 
		var curTbl = document.getElementById(tableid);
		window.clipboardData.setData("Text",curTbl.outerHTML); 
		var ExApp = new ActiveXObject("Excel.Application");
	    var ExWBk = ExApp.workbooks.add();
	    var ExWSh = ExWBk.worksheets(1); 
	    ExApp.DisplayAlerts = false;
	    ExApp.visible = true;
	    ExWBk.worksheets(1).Paste;
	    //***设置样式***
		var oSelection = ExApp.selection;   
	    //oSelection.Font.Size = 8;  
	    //oSelection.Interior.ColorIndex = 0;//设置底色
	    oSelection.Font.Name = "新宋体"; 
	    oSelection.Borders.Weight = 2;
	    //***设置样式***
	    ExApp.Visible = true;
	  }catch   (err){   
	    alert("列表导出错误:您的浏览器设置阻挡了列表的导出,请重新设置您的IE安全等级!\n设置办法:\n点击浏览器工具栏——>Internet选项——>安全——>修改Internet、本地的自定义级别——>ActiveX控件和插件\n[启用或提示\"对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本。\"]");   
	  } 
}

/**
 * 验证输入域长度合法性
 * 
 * @param obj
 *            输入域对象
 * @param size
 *            合法长度
 * @param message
 *            非法是提示消息参数
 */
function validateFiledMaxSize(obj, size, message) {
	if (obj.value.length > size) {
		alert(message);
		obj.focus();
	}
	return true;
}
/**
 * 验证负数
 */
function checkNegative(col) {
	var v = col.value;
	if (parseFloat(v) < parseFloat(0)) {
		quickMsg("不能为负数,请更改!");
		col.focus();
		col.style.color = 'red';
		return false;
	}
	col.style.color = '';
	return true;
}

/**
 * 判断多个下拉列表框是否选择不为空的值
 * 
 * @param {Object}
 *            names 下拉列表框名称 ,传递的为数组形式
 * @param {Object}
 *            messages 相应下拉列表框,出现未选择时间所提示的信息,传递的为数据形式
 */
function isCheckForSelects(names, messages) {
	var mess = "";
	for (var i = 0; i < names.length; i++) {
		if (isCheckForSelect(names[i], messages[i]) != "")
			mess += isCheckForSelect(names[i], messages[i]) + "\n";
	}
	return mess;
}

function DateUtil() {
}
/**
 * 功能:格式化时间 示例:DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006
 * "); 返回:2006/11/09
 */
DateUtil.Format = function(fmtCode, date) {
	var result, d, arr_d;

	var patrn_now_1 = /^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;
	var patrn_now_11 = /^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;

	var patrn_now_2 = /^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;
	var patrn_now_22 = /^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;

	var patrn_now_3 = /^y{4}年M{2}月d{2}日\sh{2}时m{2}分s{2}秒$/;
	var patrn_now_33 = /^y{4}年M{1,2}月d{1,2}日\sh{1,2}时m{1,2}分s{1,2}秒$/;

	var patrn_date_1 = /^y{4}-M{2}-d{2}$/;
	var patrn_date_11 = /^y{4}-M{1,2}-d{1,2}$/;

	var patrn_date_2 = /^y{4}\/M{2}\/d{2}$/;
	var patrn_date_22 = /^y{4}\/M{1,2}\/d{1,2}$/;

	var patrn_date_3 = /^y{4}年M{2}月d{2}日$/;
	var patrn_date_33 = /^y{4}年M{1,2}月d{1,2}日$/;

	var patrn_time_1 = /^h{2}:m{2}:s{2}$/;
	var patrn_time_11 = /^h{1,2}:m{1,2}:s{1,2}$/;
	var patrn_time_2 = /^h{2}时m{2}分s{2}秒$/;
	var patrn_time_22 = /^h{1,2}时m{1,2}分s{1,2}秒$/;

	if (!fmtCode) {
		fmtCode = "yyyy/MM/dd hh:mm:ss";
	}
	if (date) {
		d = new Date(date);
		if (isNaN(d)) {
			msgBox("时间参数非法\n正确的时间示例:\nThu Nov 9 20:30:37 UTC+0800 2006\n或\n2006/       10/17");
			return;
		}
	} else {
		d = new Date();
	}

	if (patrn_now_1.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "-" + arr_d.MM + "-" + arr_d.dd + " " + arr_d.hh
				+ ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_now_11.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "-" + arr_d.MM + "-" + arr_d.dd + " " + arr_d.hh
				+ ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_now_2.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "/" + arr_d.MM + "/" + arr_d.dd + " " + arr_d.hh
				+ ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_now_22.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "/" + arr_d.MM + "/" + arr_d.dd + " " + arr_d.hh
				+ ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_now_3.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "年" + arr_d.MM + "月" + arr_d.dd + "日" + " "
				+ arr_d.hh + "时" + arr_d.mm + "分" + arr_d.ss + "秒";
	} else if (patrn_now_33.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "年" + arr_d.MM + "月" + arr_d.dd + "日" + " "
				+ arr_d.hh + "时" + arr_d.mm + "分" + arr_d.ss + "秒";
	}

	else if (patrn_date_1.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "-" + arr_d.MM + "-" + arr_d.dd;
	} else if (patrn_date_11.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "-" + arr_d.MM + "-" + arr_d.dd;
	} else if (patrn_date_2.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "/" + arr_d.MM + "/" + arr_d.dd;
	} else if (patrn_date_22.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "/" + arr_d.MM + "/" + arr_d.dd;
	} else if (patrn_date_3.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.yyyy + "年" + arr_d.MM + "月" + arr_d.dd + "日";
	} else if (patrn_date_33.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.yyyy + "年" + arr_d.MM + "月" + arr_d.dd + "日";
	} else if (patrn_time_1.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.hh + ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_time_11.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.hh + ":" + arr_d.mm + ":" + arr_d.ss;
	} else if (patrn_time_2.test(fmtCode)) {
		arr_d = splitDate(d, true);
		result = arr_d.hh + "时" + arr_d.mm + "分" + arr_d.ss + "秒";
	} else if (patrn_time_22.test(fmtCode)) {
		arr_d = splitDate(d);
		result = arr_d.hh + "时" + arr_d.mm + "分" + arr_d.ss + "秒";
	} else {
		quickMsg("没有匹配的时间格式!");
		return;
	}

	return result;
};
function splitDate(d, isZero) {
	var yyyy, MM, dd, hh, mm, ss;
	if (isZero) {
		yyyy = d.getYear();
		MM = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth()
				+ 1;
		dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate();
		hh = d.getHours() < 10 ? "0" + d.getHours() : d.getHours();
		mm = d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes();
		ss = d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds();
	} else {
		yyyy = d.getYear();
		MM = d.getMonth() + 1;
		dd = d.getDate();
		hh = d.getHours();
		mm = d.getMinutes();
		ss = d.getSeconds();
	}
	return {
		"yyyy" : yyyy,
		"MM" : MM,
		"dd" : dd,
		"hh" : hh,
		"mm" : mm,
		"ss" : ss
	};
}

/**
 * 格式化时间 bool为true时并初始化时间
 */
function changeDateFormat(strDate, bool) {
	var retDate = '';
	var date = new Date();
	if (strDate.length == 21 || strDate.length == 22 || strDate.length == 23) {
		retDate = strDate.substring(0, 10);
	} else if (strDate.length == 28) {
		strDate=strDate.replace("CST","GMT+8");//转换时区
		//retDate = (new Date(strDate)).format('yyyy-MM-dd')
		retDate = DateUtil.Format("yyyy-MM-dd",strDate);
	}else if (strDate.length >30) {
		strDate=strDate.replace("GMT+08:","UTC+08");//转换时区
		retDate = DateUtil.Format("yyyy-MM-dd",strDate);
	} else if (strDate.length == 10) {
		retDate = strDate;
	} else if (bool == true) {
		retDate = DateUtil.Format("yyyy-MM-dd",date);
	} else {
		retDate = strDate;
	}
	return retDate;
}
/*
 * ====================== 判断页面是否发生了改变 ======================
 */
function CheckForm(clInput, clArea) {
	var Flag = false; // 设置标志位,如果页面变动则为true
	// var clInput = document.all.tags("input"); //检索所有"input"标签控件
	// var clArea = document.all.tags("textarea"); //检索所有多行输入控件

	for (i = 0; i < clInput.length; i++) // 挨个搜索input标签控件,比较其默认值
	{

		if (Flag == true) // 如果已发生变动,则跳出循环
			break;

		switch (clInput.item(i).type) {
		case "text": // 检索输入框
			if (clInput.item(i).value != clInput.item(i).defaultValue) {
				Flag = true;
			}
			break;

		case "radio": // 检索单选框
			if (clInput.item(i).checked != clInput.item(i).defaultChecked) {
				Flag = true;
			}
			break;

		case "checkbox": // 检索checkbox
			if (clInput.item(i).checked != clInput.item(i).defaultChecked) {
				Flag = true;
			}
			break;
		}
	}

	for (i = 0; i < clArea.length; i++) // 检索多行输入框
	{
		if (Flag == true)
			break;
		if (clArea.item(i).value != clArea.item(i).defaultValue) {
			Flag = true;
			break;
		}
	}

	if (Flag) // 提示保存,如果修改了页面,返回true
	{
		return true;
	}
}

/*
 * ====================== 判断是否是数字 ======================
 */
function isnum(number) {
	// var num=/^(-|\+)?\d+$/;
	// if(num.test(number)) //如果为真,返回False; 否True
	if (isNaN(number))
		return true;
	return false;
}
function isnumeric(p)    //数字校验
{
 var l = p.length;
 var count=0;
 if(l==0) {
	return true;
 }
 for(var i=0; i<l; i++)
 {
	var digit = p.charAt(i);
	if(digit == "." )
	{
	    ++count;
		if(count>1) return false;
	}
	else if(digit < "0" || digit > "9")
	 {
		return false;
	 }
 }

 return true;
}
function isint(p)    //整型校验
{
 var l = p.length;
 var count=0;
 if(l==0) {
    return true;
 }
 for(var i=0; i<l; i++)
 {
    var digit = p.charAt(i);
    if(digit < "0" || digit > "9")
     {
        return false;
     }
 }

 return true;
}
/*
 * ====================== 判断文本框输入的是否是整型,正、负都可以。如(77,-77) ======================
 * 
 * function isfloat(number) { var num=/^(-|\+)?\d+$/; if(num.test(number))
 * //如果为真,返回False; 否True return false; return true; }
 */
/*
 * ====================== 判断浮点数m是否大于等于浮点数n 例:(55.55,12.55)
 * ======================
 */

function comparefloat(m, n) {
	if (m.length == 0 || n.length == 0)
		return true;
	var value1 = parseFloat(m);
	var value2 = parseFloat(n);
	if (value1 >= value2) // 如果M大于或等于N,返回False, 否True
		return false;
	return true;
}

/*
 * ====================== 判断浮点数 例:(55.55) ======================
 */
function numorfloat(n) {
	var nreg = /^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$/;
	if (nreg.test(n))
		return false;
	return true;
}
/*
 * ====================== 判断是否为空,文本框必须输入值。 ======================
 */
function isempty(txt) {
	if (txt.length == 0) // 如果为真返回True,否False
		return true;
	return false;
}

/*
 * ====================== 判断单选框或复选框是否被选中 ======================
 */
function isradiochecked(obj) {
	for (i = 0; i < obj.length; i++) {
		if (obj[i].checked) // 选中一个,返回False,否则True
			return false;
	}
	return true;
}
/*
 * ======================
 *  /* ====================== 判断date1是否大于等于date2
 * 例如:(2008-12-12,2007-12-12或2008/12/12,2007/12/12) ======================
 */
function comparedate(date1, date2) {
	if (checkdate(date1) && checkdate(date2)) {
		var r = date1.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		var R = date2.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		if (r == null || R == null)
			return true;
		if (r > R)
			return false; // 如果DATE1大于DATE2,返回False,否True
	}
	return true;
}

/*
 * ====================== 判断date1是否小于date2
 * 例如:(2007-12-12,2008-12-12或2007/12/12,2008/12/12) ======================
 */

function compare(date1, date2) {
	if (checkdate(date1) && checkdate(date2)) {
		var r = date1.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		var R = date2.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		if (r == null || R == null)
			return true;
		if (r < R)
			return false; // 如果DATE1小于DATE2,返回False,否True
	}
	return true;
}

/*
 * ====================== 判断m是否大于等于n,整型 例如:(55,20) ======================
 */
function compareint(m, n) {
	if (m.length == 0 || n.length == 0)
		return true;
	var value1 = parseInt(m);
	var value2 = parseInt(n);
	if (value1 >= value2)
		return false; // 如果M大于或等于N,返回False, 否True
	return true;
}

/*
 * ====================== 判断密码是否一致 ======================
 */
function ispwd(pwd1, pwd2) {
	if (pwd1 != pwd2)
		return true; // 如果真返回False, 否True
	return false;
}

/*
 * ======================
 * 判段电话号码是否输入正确,如(028)12345678或028-12345678或13312345678或013312345678或15912345678
 * 或110等,这几种方式都OK。 ======================
 * 版本1209后增加了189号段的判断
 */
function istel(tel) {
	var reg = /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}189[0-9]{8}$)/;
	if (reg.test(tel)) // 如果真返回False, 否True
		return false;
	return true;
}

/*
 * ====================== 判断EMAIL格式是否正确 例如:yuchongyuan@083.com
 * ======================
 */
function isemail(email) {
	if (new RegExp(
			/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)
			.test(email))
		return false; // 如果真返回False, 否True
	return true;
}

/*
 * ====================== 判断身份证位数(是否是15位或18位),如(513621198303270354)
 * ======================
 * 
 * function issfz(sid) { if(new RegExp(/^([0-9]{15}|[0-9]{18})$/).test(sid))
 * //如果真返回False, 否True return false; return true; }
 */
function isIdCardNo(num) {
	if (isNaN(num)) {
		quickMsg("输入的不是数字!");
		return false;
	}
	var len = num.length, re;
	if (len == 15)
		re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
	else if (len == 18)
		re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
	else {
		quickMsg("输入的数字位数不对!");
		return false;
	}
	var a = num.match(re);
	if (a != null) {
		if (len == 15) {
			var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
			var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4]
					&& D.getDate() == a[5];
		} else {
			var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
			var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4]
					&& D.getDate() == a[5];
		}
		if (!B) {
			quickMsg("输入的身份证号 " + a[0] + " 里出生日期不对!");
			return false;
		}
	}
	return true;
}

/*
 * ====================== 去除左边的空格,从最后一个字符前所有的空格。如(__ aa__ bb)
 * ======================
 */

function LTrim(str) {
	for (i = 0; i < str.length - 1; i++) {
		if (str.charAt(i) == " ") {
			str = str.slice(1); // 如果有空格True,否则False;
			return true;
		}
	}
	return false;

}

/*
 * ====================== 去除右边的空格,从第一个字符后所有的空格。如(aa__) ======================
 */
function RTrim(str) {
	var iLength;
	iLength = str.length;
	if (str.charAt(iLength - 1) == " ") // 如果字串右边第一个字符为空格
	{
		str = str.slice(0, iLength - 1); // 将空格从字串中去掉
		return true;
	}
	return false;
}

/*
 * ====================== 短日期验证, 以及判断了月、天是否正确, 如(2007-01-05或2007/01/05)
 * ======================
 */
function checkdate(strdate) {
	var r = strdate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if (r == null)
		return false;
	var d = new Date(r[1], r[3] - 1, r[4]);
	return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d
			.getDate() == r[4]); // 正确返回True
}

/* 判断是否为空 name为控件name值,message为要显示的内容 */
function isEmpty(name, message) {
	if (document.getElementsByName(name)[0].value == "") {
		alert(message + "不能为空");
		return false;
	} else {
		return true;
	}
}
/* 判断多个文本框不能为空 */
function isEmptys(names, messages) {
	for ( var i = 0; i < names.length; i++) {
		if (!isEmpty(names[i], messages[i]))
			return false;
	}
	return true;
}
/*
 * ====================== 小数位数判断 num:字符串,需要验证的数字 decimalLen : 规定的小数点位数
 * ======================
 */
function checkDecimal(num, decimalLen, message) {
	var len = decimalLen * 1 + 1;
	if (numorfloat(num)) {
		quickMsg('请输入数字!');
		return false;
	}
	if (num == '.') {
		quickMsg('请输入数字!');
		return false;
	}
	if (num.indexOf('.') > 0) {
		num = num.substr(num.indexOf('.') + 1, num.length - 1);
		if ((num.length) < len) {
			return true;
		} else {
			quickMsg(message);
			return false;
		}
	}
	return true;
}
/*
 * ====================== 小数位数判断 num:字符串,需要验证的数字 decimalLen : 规定的小数点位数 用于循环判断输出
 * ======================
 */
function checkFormat(num, decimalLen) {
	var len = decimalLen * 1 + 1;
	if (numorfloat(num)) {
		return false;
	}
	if (num.indexOf('.') > 0) {
		num = num.substr(num.indexOf('.') + 1, num.length - 1);
		if ((num.length) < len) {
			return true;
		} else {
			return false;
		}
	}
	return true;
}
/*
 * ====================== /同时去前后空格 ======================
 */
function trim(strSource) {
	return strSource.replace(/^\s+|\s+$/g, "");
}

String.prototype.trim = function(){
	var reExtraSpace = /^\s*(.*?)\s+$/;
	return this.replace(reExtraSpace,"$1");
}

/*
 * ===================== 校验多个空格 =====================
 */
function testSpaceValue(node) {
	var str = node.value;
	var i;
	var allisnun;
	if (str.length < 1) {
		return false;
	}
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == ' ') {
			allisnun = false;
		} else {
			allisnun = true;
			break;
		}
	}
	if (!allisnun) {
		quickMsg("请输入有效信息!");
		// node.focus();
		mouseMoveLast(node);
	}
}
/*
 * ========================= 当校验不通过的时候,光标定位到最文本框的最后一位去 需要参数为 控件 如 onclick(this);
 * =========================
 */
function mouseMoveLast(node) {
	node.focus();
	var text = node.value;
	var rng = document.selection.createRange();
	rng.moveStart("character", text.length);
	rng.select();
	node.select();
}

/**
 * 检查表单元素,是否被修改过(简单表单) 该表单不存在元素为数组的情况 该方法用于初始化
 */
function initializeWithInfo(frm) {
	if (!frm) { // smart check
		return;
	}
	var eles = frm.elements;
	for ( var i = 0, n = eles.length; i < n; i++) {
		var ele = eles[i];
		if (ele.tagName == "INPUT") {
			if (ele.type == "submit" || ele.type == "reset"
					|| ele.type == "button" || ele.type == "image"
					|| ele.type == "hidden") {
				continue;
			}
		}
		var obj = document.createElement("INPUT");
		obj.type = "hidden";
		if (ele.type != "checkbox" && ele.type != "radio"
				&& document.getElementsByName(ele.name).length > 1) {
			alert("There are " + document.getElementsByName(ele.name).length
					+ " field elements with the same name (" + ele.name
					+ "), which can result in unbelievable output!");
			return false;
		}
		if (ele.tagName == "INPUT"
				&& (ele.type == "checkbox" || ele.type == "radio")) {
			if (!ele.id) {
				ele.id = ele.name + "_" + ele.value;
			}
			var title = "";
			if (ele.title != null && ele.title != '')
				title = ele.title;
			obj.name = "_tc_f[" + title + "]["
					+ ((ele.type == "checkbox") ? "checkbox" : "radio") + "]["
					+ ele.name + "][" + ele.id + "][0]";
			obj.checked = ele.checked;
		} else {
			if (!ele.id) {
				ele.id = ele.name;
			}
			var title = "";
			if (ele.title != null && ele.title != '')
				title = ele.title;
			obj.name = "_tc_f[" + title + "][input][" + ele.name + "]["
					+ ele.id + "][0]";
		}
		obj.value = ele.value;
		obj.disabled = true;
		frm.appendChild(obj);
	}
}
/**
 * 检查表单元素,是否被修改过(简单表单) 该表单不存在元素为数组的情况 该方法用于检查表单是否有值被修改过 返回为提示信息,包括哪些字段被修改过
 */
function recordChangesWithInfo(frm) {
	if (!frm) { // smart check
		return;
	}
	var cmsDiff = "";
	for ( var eles = frm.elements, i = 0; i < eles.length; i++) {
		var re = new RegExp(
				"_tc_f\\[(.*?)\\]\\[(.*?)\\]\\[(.*?)\\]\\[(.*?)\\]\\[0\\]");
		var m = re.exec(eles[i].name);
		if (m == null) {
			continue;
		}
		if (m[1] != '') {
			if (m[1] == "checkbox" || m[1] == "radio") {
				if (document.getElementById(m[4]).checked != eles[i].checked && document.getElementById(m[4]).changeexp !="true") {
					cmsDiff += m[1] + "  从:" + eles[i].checked + "修改成:"
							+ !eles[i].checked + "\n\n";
				}
			} else {
				if (document.getElementById(m[4]).value != eles[i].value && document.getElementById(m[4]).changeexp !="true") {
					cmsDiff += m[1] + "  从:" + eles[i].value + "修改成:"
							+ document.getElementById(m[4]).value + "\n\n";
				}
			}
		}
	}
	return cmsDiff;
}

/**
 * 检查表单元素,是否被修改过(所有的信息,包括元素为数组的情况,但是只能给出是否被修改过) 该表单不存在元素为数组的情况 该方法用于初始化
 */
function initialize(frm) {
	if (!frm) { // smart check
		return;
	}

	var doneElement = new Array();
	var eles = frm.elements;
	for ( var i = 0, n = eles.length; i < n; i++) {
		var ele = eles[i];
		if (ele.tagName == "INPUT") {
			if (ele.type == "submit" || ele.type == "reset"
					|| ele.type == "button" || ele.type == "image"
					|| ele.type == "hidden") {
				continue;
			}
		}
		if(!(ele.name||"")) continue;
		ele.isOld = true;
		var arrayElement = document.getElementsByName(ele.name);
		if (arrayElement.length > 1) {// 如果元素是数组
			// 是否注册过
			var reged = false;
			for ( var j = 0; j < doneElement.length; j++) {
				if (doneElement[j] == arrayElement) {
					reged = true;
					break;
				}
			}
			if (!reged) {
				doneElement[doneElement.length] = arrayElement;
				for ( var j = 0; j < arrayElement.length; j++) {
					var tempElement = arrayElement[j];
					var obj = document.createElement("INPUT");
					obj.type = "hidden";
					if (ele.tagName == "INPUT"
							&& (ele.type == "checkbox" || ele.type == "radio")) {
						if (!ele.id) {
							ele.id = ele.name + "_" + ele.value;
						}
						var title = "";
						if (ele.title != null && ele.title != '')
							title = ele.title + "_" + j;
						obj.name = "_tc_f["
								+ title
								+ "]["
								+ ((ele.type == "checkbox") ? "checkbox"
										: "radio") + "][" + ele.name + "]["
								+ ele.id + "_" + j + "][" + ele.id + "][0]";
						obj.checked = ele.checked;
					} else {
						if (!ele.id) {
							ele.id = ele.name;
						}
						var title = "";
						var index = j + 1;
						if (ele.title != null && ele.title != '')
							title = tempElement.title + "[" + index + "]";
						obj.name = "_tc_f[" + title + "][input][" + ele.name
								+ "][" + ele.id + "_" + j + "][" + ele.id
								+ "][0]";
					}
					obj.value = tempElement.value;
					obj.disabled = true;
					frm.appendChild(obj);
				}
			}
		} else if(ele.id||ele.name||"") {// 如果元数不是数组
			var obj = document.createElement("INPUT");
			obj.type = "hidden";
			if (ele.tagName == "INPUT"
					&& (ele.type == "checkbox" || ele.type == "radio")) {
				if (!ele.id) {
					ele.id = ele.name + "_" + ele.value;
				}
				var title = "";
				if (ele.title != null && ele.title != '')
					title = ele.title;
				obj.name = "_tc_f[" + title + "]["
						+ ((ele.type == "checkbox") ? "checkbox" : "radio")
						+ "][" + ele.name + "][" + ele.id + "][" + ele.id
						+ "][0]";
				obj.checked = ele.checked;
			} else {
				if (!ele.id) {
					ele.id = ele.name;
				}
				var title = "";
				if (ele.title != null && ele.title != '')
					title = ele.title;
				obj.name = "_tc_f[" + title + "][input][" + ele.name + "]["
						+ ele.id + "][" + ele.id + "][0]";
			}
			obj.value = ele.value;
			obj.disabled = true;
			frm.appendChild(obj);
		}

	}
}
/**
 * 检查表单元素,是否被修改过(简单表单) 该表单不存在元素为数组的情况 该方法用于检查表单是否有值被修改过 返回为提示信息
 */
function recordChanges(frm) {
	if (!frm) { // smart check
		return false;
	}
	var cmsDiff = "";
	var errorName = "";
	for ( var eles = frm.elements, i = 0; i < eles.length; i++) {
		try {
			var re = new RegExp(
					"_tc_f\\[(.*?)\\]\\[(.*?)\\]\\[(.*?)\\]\\[(.*?)\\]\\[(.*?)\\]\\[0\\]");
			var m = re.exec(eles[i].name);
			if (m == null) {
				continue;
			}
			var arrayElement = document.getElementsByName(m[3]);
			if (arrayElement.length > 1) {// 如果元素是数组
				var index = m[4].substring(m[4].lastIndexOf('_') + 1, m[4].length);
				if (m[1] == "checkbox" || m[1] == "radio") {
					if (arrayElement[index].checked != eles[i].checked && arrayElement[index].changeexp !="true") {
						cmsDiff += m[1] + "  从:" + eles[i].checked + "修改成:"
								+ !eles[i].checked + "<br>";
					}
				} else {
					if (arrayElement[index].value != eles[i].value && arrayElement[index].changeexp !="true") {
						cmsDiff += m[1] + "  从:" + eles[i].value + "修改成:"
								+ arrayElement[index].value + "<br>";
					}
				}
			} else {
				errorName = m[4] + eles[i].name;
				if (m[1] == "checkbox" || m[1] == "radio") {
					if (document.getElementById(m[5]).checked != eles[i].checked && document.getElementById(m[5]).changeexp !="true") {
						cmsDiff += m[1] + "  从:" + eles[i].checked + "修改成:"
								+ !eles[i].checked + "<br>";
					}
				} else {
					if (document.getElementById(m[5]).value != eles[i].value && document.getElementById(m[5]).changeexp !="true") {
						cmsDiff += m[1] + "  从:" + eles[i].value + "修改成:"
								+ document.getElementById(m[5]).value + "<br>";
					}
				}
			}
		} catch (e) {
			// alert("字段:"+errorName+"发生异常,原因:"+e.description);
		}
	}

	return cmsDiff;
}

/* 查看产品线或客户线时的合计操作:columnName是需要合计的列名,sumName是合计后的文本框名 */
function LinesSumOperation(columnName, sumName) {
	var sumValue = 0;
	var columnObject = document.getElementsByName(columnName);
	if (columnObject.length == 0) {
		return;
	}
	for ( var i = 0; i < columnObject.length; i++) {
		if (!isempty(columnObject[i].value))
			sumValue += parseFloat(columnObject[i].value);
	}
	document.getElementById(sumName).value = sumValue.toFixed(6);
}

/**
 * 查看包含产品线或客户线的详细页面的合计操作: columnName 是需要合计的列名,sumName 是合计后的文本框名
 * sizeOfProductLine 是产品线列表长度. 保证您页面上产品线放在客户线前面
 */
function LinesSumOperation4Detail(columnName, sumName, sizeOfProductLine, flag) {
	// flag为1的话,计算产品线
	if (flag == 1) {
		// 如果产品线为空的话,返回
		if (sizeOfProductLine == 0) {
			return;
		}
		// 不为空的话
		var sumValue = 0;
		var columnObject = document.getElementsByName(columnName);
		for ( var i = 0; i < sizeOfProductLine; i++) {
			if (!isempty(columnObject[i].value))
				sumValue += parseFloat(columnObject[i].value);
		}
		document.getElementById(sumName).value = sumValue.toFixed(6);
	}
	// flag为0的话,计算客户线
	if (flag == 0) {
		// 如果客户线为空的话,返回
		var columnObject = document.getElementsByName(columnName);
		if (sizeOfProductLine == columnObject.length) {
			return;
		}
		// 不为空的话
		var sumValue = 0;
		for ( var i = sizeOfProductLine; i < columnObject.length; i++) {
			if (!isempty(columnObject[i].value))
				sumValue += parseFloat(columnObject[i].value);
		}
		document.getElementById(sumName).value = sumValue.toFixed(6);
	}
}

/* 输入产品线或客户线时的合计操作:columnName是需要合计的列名,sumName是合计后的文本框名 */
function sum(columnName, sumName) {
	var sum = document.getElementsByName(columnName);
	var total = 0;
	for ( var i = 0; i < sum.length; i++) {
		if (sum[i].value.length != 0 && !isNaN(sum[i].value)
				&& sum[i].value > 0) {
			total += parseFloat(sum[i].value);
		}
	}
	document.getElementById(sumName).value = total.toFixed(6);
}

/* 输入产品线或客户线时的合计操作:columnName是需要合计的列名,sumName是合计后的文本框名 */
function sum(columnName, sumName, size) {
	var sum = document.getElementsByName(columnName);
	var total = 0;
	for ( var i = 0; i < sum.length; i++) {
		if (sum[i].value.length != 0 && !isNaN(sum[i].value)
				&& sum[i].value > 0) {
			total += parseFloat(sum[i].value);
		}
	}
	document.getElementById(sumName).value = total.toFixed(size);
}

/* 产品线或客户线时的百分比操作:columnName是需要合计的列名,ratename是百分比的文本框名 */
function calculateRate(columnName, ratename) {
	var input = document.getElementsByName(columnName);
	var rate = document.getElementsByName(ratename);
	var total = 0;
	for ( var i = 0; i < input.length; i++) {
		if (input[i].value.length != 0 && !isNaN(input[i].value)
				&& input[i].value > 0) {
			total += parseFloat(input[i].value);
		}
	}
	for ( var i = 0; i < input.length; i++) {
		if (total != 0 && !isNaN(input[i].value) && input[i].value > 0) {
			rate[i].value = (input[i].value / total * 100).toFixed(2);
		} else {
			rate[i].value = 0;
		}
	}
}
/**
 * 客户线投资比重计算
 */
function calculateRate4Invest(totalname, columnName, ratename) {
	var rate = document.getElementsByName(ratename);
	var total = document.getElementById(totalname).value;
	var input = document.getElementsByName(columnName);
	var totalrate = 0;
	for ( var i = 0; i < input.length; i++) {
		if (total != 0 && !isNaN(input[i].value) && input[i].value > 0) {
			var temp = (input[i].value / total * 1000000).toFixed(2);
			rate[i].value = temp;
			totalrate += parseFloat(temp);
		} else {
			rate[i].value = 0;
		}
	}
	document.getElementById("sum5").value = totalrate.toFixed(2);
}

/* 详细页面中年度计划结构的合计调用方法 */
function calculateStructureSum(instant, mapArray, i, columnName, sumName) {
	var columnName = document.getElementsByName(columnName);
	var totalSum = 0;
	for ( var j = instant - mapArray; j < instant; j++) {
		if (!isempty(columnName[j].value))
			totalSum += parseFloat(columnName[j].value);
	}
	document.getElementsByName(sumName)[i].value = totalSum.toFixed(6);
}

/*
 * 根据不同的分辨率选择不同的CSS页面,暂时放在这里
 */
//if (window.screen) {
//	var wide = screen.width;
//	if (wide <= 800) {
//		document
//				.write("<link rel='stylesheet'   href='/css/css800_textfield.css'   type='text/css'>");
//	} else {
//		document
//				.write("<link href='/css/css1024_textfield.css' rel='stylesheet' type='text/css'>");
//	}
//}

function textCounter(field, maxlimit) { // 限制文本域输入长度
	if (field.value.length > maxlimit)
		field.value = field.value.substring(0, maxlimit);
}
// 单独处理下拉列表控件
function createSelect(container, selectName) {
	for ( var i = 0; i < container.children.length; i++) {
		if (container.children[i].name == selectName) {
			container.value = container.children[i].value;
			container.children[i].id = container.childId;
		}
		if (container.children[i].name == selectName + "Name") {
			container.showValue = container.children[i].innerText;
			container.removeChild(container.children[i]);
		}
	}
	if (container.select != null) {
		return;
	}
	var select = document.createElement("select");
	select.id = container.id + 'select';
	var values = eval(container.name);
	for ( var i = 0; i < values.length; i++) {
		var option = document.createElement("option");
		option.value = values[i][0];
		option.innerText = values[i][1];
		select.appendChild(option);
	}
	container.appendChild(select);
	select.onblur = removeSelect;
	select.onchange = changeValue;
	container.setAttribute('select', select);
	container.setAttribute('selectName', selectName);
	select.setAttribute('container', container);
	select.setAttribute('containerChildren', container.children);
	select.value = container.value;
	for ( var i = 0; i < container.children.length; i++) {
		if (container.children[i].name == selectName) {
			select.setAttribute('selectControler', container.children[i]);
		}
	}
	select.valueArray = values;
}
function removeSelect(container, selectName) {
	if (container == null) {
		container = this.container;
	}
	if (container.select == null)
		return;
	selectName = container.selectName;
	if (document.activeElement.id == container.select.id
			|| document.activeElement.id == container.id)
		return;
	container.removeChild(container.select);
	for ( var i = 0; i < container.children.length; i++) {
		if (container.children[i].name == selectName + "Name") {
			container.removeChild(container.children[i]);
		}
	}
	var showName = document.createElement("div");
	showName.name = selectName + "Name";
	showName.innerText = container.showValue;
	container.appendChild(showName);
	container.select = null;
}
function changeValue() {
	// 设置展示值
	for ( var i = 0; i < this.valueArray.length; i++) {
		if (this.valueArray[i][0] == this.value) {
			this.container.showValue = this.valueArray[i][1];
			break;
		}
	}
	// 设置value值
	for ( var i = 0; i < this.containerChildren.length; i++) {
		if (this.containerChildren[i].id == this.container.childId) {
			this.containerChildren[i].value = this.value;
		}
	}
}

// 初始化页面大小
function initFrameSize(frame) {
	var frameParent = frame.parentNode.ownerDocument.body;
	frameParent.onresize = function() {
		frame.style.height = $(window).height() - 55;
		frame.style.width = '100%';
	}
	frame.style.height = $(window).height() - 55;
	frame.style.width = '100%';
}

// 随机数
function  randomChar(l)  {
  var x="qwertyuioplkjhgfdsazxcvbnm";
  var tmp="";
  for(var  i=0;i< l;i++)  {
     tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
  }
  return tmp;
}

//判断是否是正整数
function isPositiveInt(obj) {
	var pattern = /^[1-9]*[1-9][0-9]*$/;
	return pattern.test(obj);
}

//判断是否是时间yyyy-mm-dd
function strDate(str){
  if(str == null || str == "")return true;
  var reg =  /^(\d{1,4})(\-|\-)(\d{1,2})\2(\d{1,2})$/; ///^(\d{4})-(\d{1,2})-\d{1,2}$/;// /^(\d{1,4})(\-|\-)(\d{1,2})\2(\d{1,2})/;///^(\d{1,4})(-   &brvbar;\/)(\d{1,2})\2(\d{1,2})$/; 
  var r  = str.match(reg); 
  if(r==null)return false; 
  var d= new Date(r[1], r[3]-1,r[4]); 
  var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
  return d.getFullYear()==r[1]&&d.getMonth()+1==r[3]&&d.getDate()==r[4];
} 

function _isEmpty(s) {
	return ((s == undefined) || (s == ""));
}

//判断页面表单所对应必传附件是否上传
function verifyAttachmentMust(unitId,className) {
	var flag = true;
	if(unitId=="" || className=="") {
		flag = false;
		quickMsg("附件id为空或businessType为空!");
	}else{
		$.ajax({
			url:basePath
			type:'post',
			dataType:'json',
			async:false,
			success:function(data) {
				if(data.message!='') {
					quickMsg(data.message);
					flag = false;
				}
			}
		});
	}
	return flag;
}

//检查主单要求上传的所有附件是否上传完毕
function mustUploadCheck(className,unitId,specId){
	var mark=true;
	if($("#boId").val()){
	var reqUrl=basePath
	$.ajax({
		 url:reqUrl,
		 type:"post",
		 async:false,
		 data:"",
		 dataType:"json",
		 success:function(data){
			 if("success"!=data.message){
				 mark = data.message;
				 
			 }
		 }
	 });
	}else{
		return "主单不存在,请刷新后重试";
	}
	return mark;
}

// className 必须与模块实体类中entity相对应
function ajaxCheckIsCreator(delIds, className) {
	var msg = "";
	$.ajax({
		url:basePath,
		type:"POST",
		data:{delIds:delIds,className:className},
		dataType:"json",
		async : false,
		success:function(data){
			if (data.msg != ""){
				msg = data.msg;
			}
		}
	});
	if (msg != ""){
		quickMsg(msg);
		return false;
	}
	return true;
}

function dateDifference(Date1,Date2) { //Date1和Date2是2017-07-10格式  
    var sDate, newDate1, newDate2, Days
    aDate = Date1.split("-");
    newDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为07-10-2017格式  
    aDate = Date2.split("-");
    newDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    Days = parseInt(Math.abs(newDate1 - newDate2) / 1000 / 60 / 60 / 24); //把差的毫秒数转换为天数  
    return Days;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值