/**
* 设置上下文路径
*/
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})(- ¦\/)(\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;
}