var dsSeleParams="status:no; scroll:yes; resizable:yes; help:no;dialogWidth:500px;dialogHeight:450px;";
function getTodayYear()
{
var dtTodayYear = "";
var objdate = new Date(); //Create Date object.
dtTodayYear += objdate.getYear() + "年"; //Get month
return dtTodayYear;
}
function getTodayYearOnly()
{
var dtTodayYear = "";
var objdate = new Date(); //Create Date object.
dtTodayYear += objdate.getYear(); //Get month
return dtTodayYear;
}
function getTodayMonth()
{
var dtTodayMonth = "";
var objdate = new Date(); //Create Date object.
dtTodayMonth += (objdate.getMonth() + 1) + "月"; //Get month
return dtTodayMonth;
}
function getTodayMonthOnly()
{
var dtTodayMonth = "";
var objdate = new Date(); //Create Date object.
dtTodayMonth += objdate.getMonth(); //Get month
return dtTodayMonth;
}
function getTodayDate()
{
var dtTodayDate = "";
var objdate = new Date(); //Create Date object.
dtTodayDate += objdate.getYear()+ "年"; //Get year.
dtTodayDate += (objdate.getMonth() + 1) + "月"; //Get month
dtTodayDate += objdate.getDate() + "日"; //Get day
return dtTodayDate;
}
function getTodayDateOnly()
{
var dtTodayDate = "";
var objdate = new Date(); //Create Date object.
dtTodayDate += objdate.getDate(); //Get day
return dtTodayDate;
}
function getTodayWeekDay()
{
var d, day, x, s = "";
var x = new Array("星期日", "星期一", "星期二");
var x = x.concat("星期三","星期四", "星期五");
var x = x.concat("星期六");
d = new Date();
day = d.getDay();
return(s += x[day]);
}
function getSomeWeekDay(dtYear, dtMonth, dtDate)
{
var objDate = new Date(dtYear, dtMonth, dtDate);
var day, x, s = "";
var x = new Array("星期日", "星期一", "星期二");
var x = x.concat("星期三","星期四", "星期五");
var x = x.concat("星期六");
day = objDate.getDay();
return(s += x[day]);
}
/************************************************************************************
名称: stretchPage()
功能: 页面调整高度用,为了使页面不出现滚动条
参数: 无
返回: 无
引用: 无
说明: 需要在每个要调整页面高度的
标签处增加 onload="toppage"
LMDate: 2006-02-22
**************************************************************************************/
function stretchPage()
{
if (self.location!=top.location)
{
parent.document.all(self.name).height = document.body.scrollHeight;
top.window.scroll(0,0);
}
}
/************************************************************************************
名称: checkall(parentctrl, checkboxctrl)
功能: 判断checkbox控件组中是否有选中状态
参数: checkbox控件
返回: 有选中则返回true,否则返回false
引用: 无
说明: 有机会待改,目前大多数已经写为checkall方法了
LMDate: 2006-03-30
**************************************************************************************/
function checkallcheckbox(parentctrl, checkboxctrl)
{
if (checkboxctrl && parentctrl)
{
//for (checkboxctrl.length)
}
for (var i=0;i 0)
val += ",";
val += temp;
}
}
return val;
}
/*************************************************************************************
名称: regularCode(val)
功能: 服务类型及数据字典中用的编码,为数字或英文字母
参数: value
返回: 通过true,不通过false
**************************************************************************************/
function regularCode(val)
{
// var regExp = new RegExp(/[a-zA-Z\d]/);
// var regNotExp = new RegExp(/[^a-zA-Z\d_]/);
var regExp = /[a-zA-Z\d]/;
var regNotExp = /[^a-zA-Z\d_]/;
if (regExp.test(val))
{
if (regNotExp.test(val))
{
return false;
}
return true;
}
else
return false;
}
/*************************************************************************************
名称: regular(val)
功能: 注册用户名输入规范
参数: value
返回: 通过true,不通过false
**************************************************************************************/
function regular(val)
{
// var regExp = new RegExp(/^[a-zA-Z][\d_]*/);
// var regNotExp = new RegExp(/[^a-zA-Z\d_]/);
var regExp = /^[a-zA-Z][\d_]*/;
var regNotExp = /[^a-zA-Z\d_]/;
if (regExp.test(val))
{
if (regNotExp.test(val))
{
return false;
}
return true;
}
else
return false;
}
/************************************************************************************
名称: getStringBytes(val)
功能: 获取某个字符串的字节数,根据一般的字符集编码:英文为一个byte,中文为两个byte
参数: val --需要查询字节数的字符串
返回: int
引用: 无
说明:
Author: zuomin
LMDate: 2006-01-25
**************************************************************************************/
function getStringBytes(val) {
if ( val == "" )
return 0;
var idx = 0 ;
var totalByte = 0 ;
for ( ; idx < val.length ; idx ++ )
{
if ( val.charCodeAt(idx) < 128 ) {
totalByte++;
}else{
totalByte += 2;
}
}
return totalByte;
}
/*************************************************************************************
名称: countword(val)
功能: 服务类型及数据字典中用的编码,为数字或英文字母
参数: value
返回: 通过true,不通过false
**************************************************************************************/
function countword(ctrl, val)
{
if (ctrl && val)
ctrl.innerHTML=" 已输入字符: "+getStringBytes(val);
}
/************************************************************************************
名称: validDateStr(year,month,day)
功能: 检查用户选择的年、月、日三部分给合起来是否是一个正确的参数
参数: year --用户所输入的年份(四位或两位)
month -- 用户所输入的月份(一位或两位)
month -- 用户所输入的日期(一位或两位)
返回: bool
引用: 无
说明: 需要对润年进行判断
Author: zuomin
LMDate: 2006-01-25
**************************************************************************************/
function validDateStr(year,month,day) {
var yearVal = trim(year);
var monthVal = trim(month);
var dayVal = trim(day);
//年份必须为四位或者2位
if ( !(yearVal.length == 2 || yearVal.length == 4)) {
return false;
}
//月份、日期必须为1位或2位
if ( monthVal.length > 2 || dayVal.length > 2 ) {
return false;
}
//判断年份为两位时,增加前面两位的世纪 20或19
if ( parseInt(yearVal) > 50 ) {
yearVal = "19" + yearVal;
} else {
yearVal = "20" + yearVal;
}
//判断年份是否为一个正整数
if ( !isPlusInt(yearVal)) {
return false;
}
//判断月份是否有前缀 0 ,如果有则先将其去掉
if ( monthVal.length == 2 && monthVal.charAt(0) == "0" ) {
monthVal = monthVal.charAt(1);
}
//判断日期是否有前缀 0 ,如果有则先将其去掉
if ( dayVal.length == 2 && dayVal.charAt(0) == "0" ) {
dayVal = dayVal.charAt(1);
}
//判断月份与日期是否是一个正整数
if ( !isPlusInt(monthVal) || !isPlusInt(dayVal) ) {
return false;
}
//判断月份是否大于 12
if ( monthVal < 0 || monthVal > 12 ) {
return false;
}
var MonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
//判断是否为润年
if ((( yearVal % 4 == 0 ) && (yearVal % 100 != 0 ) ) || (yearVal % 400 == 0 )) {
MonthDays[1] = 29;
}
// 判断日期是否正确
if ( day > MonthDays[monthVal - 1] || day < 0 ) {
return false;
}
return true;
}
/************************************************************************************
名称: isNumber(val)
功能: 检查某个参数是否为数字类型,只包括0和正整数
参数: val---入参;需要检查的参数
返回: bool
引用: 无
说明: 目前不支持对负整数进行检查,并且不会检查参数是否起出最大整数范围
LMDate: 2006-01-25
**************************************************************************************/
function isNumber(val) {
val = trim(val);
// 检查是否为0 --特殊检查
if ( val == "0" ) {
return true;
}
// 检查是否为正整数
// var reg = new RegExp(/^[\d]*$/) ;
var reg = /^[\d]*$/ ;
if ( !reg.test(val) )
{
return false;
}
else
return true;
}
/************************************************************************************
名称: isInteger(val)
功能: 检查某个参数是否为Int类型,只包括0和正整数
参数: val---入参;需要检查的参数
返回: bool
引用: 无
说明: 目前不支持对负整数进行检查,并且不会检查参数是否起出最大整数范围
Author: zuomin
LMDate: 2006-01-25
**************************************************************************************/
function isInteger(val) {
val = trim(val);
// 检查是否为0 --特殊检查
if ( val == "0" ) {
return true;
}
var idx = 0 ;
for ( ; idx < val.length ; idx ++ )
{
if ( val.charCodeAt(idx) < 48 || val.charCodeAt(idx) > 57 )
{
return false;
}
}
return true;
// 检查是否为正整数
// var reg = new RegExp(/^[1-9]+[0-9]*$/) ;
// if ( !reg.test(val) )
// {
// return false;
// }
// else
// return true;
}
/************************************************************************************
名称: isPlusInt(val)
功能: 检查某个参数是否为正整数不包括0
参数: val---入参;需要检查的参数
返回: bool
引用: 无
说明: 目前不支持对负整数进行检查,并且不会检查参数是否起出最大整数范围
Author: zuomin
LMDate: 2006-01-25
**************************************************************************************/
function isPlusInt(val) {
val = trim(val);
// 检查是否为0 --特殊检查
if ( val == "0" ) {
return false;
}
var idx = 0 ;
for ( ; idx < val.length ; idx ++ )
{
if ( val.charCodeAt(idx) < 48 || val.charCodeAt(idx) > 57 )
{
return false;
}
}
return true;
// 检查是否为正整数
// var reg = new RegExp(/^[1-9]+[0-9]*$/) ;
// if ( !reg.test(val) )
// {
// return false;
// }
// else
// return true;
}
/************************************************************************************
名称: limitInputInteger(ctl)
功能: 限制某个控件中只能输入数据,该数字不能以0开头,不能带有小数点
参数: ctl---入参;需要检查输入参数的控件
返回: 字符串
引用: 无
说明: 若控件中的输入信息不为正整数,则光标不会发生跳转
Author: zuomin
LMDate: 2006-01-25
**************************************************************************************/
function limitInputInteger(ctl) {
alert("进入参数有效性检查!");
ctl.value = trim(ctl.value);
content = ctl.value;
if ( content == "" ) {
alert("您所输入的内容为空!");
return false;
}
// var reg = new RegExp(/^[1-9]+[0-9]*$/) ;
var reg = /^[1-9]+[0-9]*$/ ;
if ( !reg.test(content) )
{
alert("您的输入中有非法字符,或者输入错误!");
ctl.select();
ctl.focus();
return false;
}
else
return true;
}
/************************************************************************************
名称: trim(strValue)
功能: 该函数用于去除字符串前后的空格
参数: strValue---入参;字符串;待处理的字符串
返回: 字符串
引用: 无
说明: 若为全空格字符串则返回空
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************************/
function trim(strValue)
{
if (strValue==null)
return "";
return strValue.replace(/(^\s*)|(\s*$)/g, "");
/*var iLTR, jRTL;
var chr;
//去除字符串前后的空格
for( iLTR = 0; iLTR < strValue.length; iLTR++ )
{
chr = strValue.charAt(iLTR) ;
if( chr != " " ) break;
}
if( iLTR == strValue.length ) return "";
//去除字符串前后的空格
for( jRTL = strValue.length - 1; jRTL >= 0; jRTL-- )
{
chr = strValue.charAt(jRTL);
if( chr != " " ) break;
}
return strValue.substring(iLTR, jRTL + 1);*/
}
/************************************************************************************
名称: trimZero(strValue)
功能: 该函数用于去除字符串的前导0
参数: strValue---入参;字符串;待处理的字符串
返回: 字符串
引用: 无
说明: 若为全0字符串则返回空
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************************/
function trimZero(strValue)
{
var iLTR;
var chr;
//去除字符串前导0
for( iLTR = 0; iLTR < strValue.length; iLTR++ )
{
chr = strValue.charAt(iLTR) ;
if( chr != "0" ) break;
}
if( iLTR == strValue.length ) return "";
return strValue.substring(iLTR, strValue.length);
}
/************************************************************************************
名称: existChinese(strValue)
功能: 该函数用于检查字符串是否包含汉字
参数: strValue---入参;字符串;待处理的字符串
返回: 布尔值; true--包含汉字; false--不包含汉字
引用: 无
说明:
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************************/
function existChinese(strValue)
{
var chrCode
for(var iChar = 0; iChar < strValue.length; iChar++)
{
chrCode = strValue.charCodeAt(iChar);
if(parseInt(chrCode) > 255)
{
return true;
}
}
return false;
}
/************************************************************************************
名称: formatInputNumber(oElement, length, decimal)
功能: 该函数用于格式化输入框(INPUT)的值,只用于非负数的情况
参数: oElement---入参;对象;待处理的输入框(INPUT)对象
length-----入参;数字;数值长度(包括小数点)
decimal----入参;数字;小数位数
返回: 数值型
引用: trim(strValue);trimZero(strValue);existChinese(strValue);
说明: 如果输入数据包含汉字,则返回空值
如果输入数据大于规定的位数,则溢出为0,并格式化成相应的小数位数
如果输入数据的小数位数大于要求的位数,则用去尾法消去,若不足要求的小数位数则补零
小数点占一位
一般用于INPUT对象的ONBLUR事件
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************************/
function formatInputNumber(oElement, length, decimal)
{
var oInput = oElement;
var oInputValue = trim(oInput.value);
var iLowcase = oInputValue.indexOf("e");
var iUpcase = oInputValue.indexOf("E");
if( oInputValue == "") //为空值
{
oInput.value = "";
return true;
}
if (existChinese(oInputValue)) //包含汉字
{
oInput.value = "";
return true;
}
if((iLowcase != -1)||(iUpcase != -1)) //科学记数法
{
/***********************************************
处理科学记数法
***********************************************/
return true;
}
//一般记数法
var bOverflow = false; //是否溢出
var partInteger = ""; //整数部分的值
var countIntegerLength = 0; //整数部分长度
var partDecimal = ""; //小数部分的值
var countDecimalLength = 0; //小数部分长度
var iPoint = oInputValue.indexOf("."); //小数点位置
var allowIntegerLength = length - decimal - 1; //整数部分允许长度
var allowDecimalLength = decimal; //小数部分允许长度
//获得输入数据的整数部分和小数部分
if(iPoint == -1) //输入是整数
{
partInteger = oInputValue;
partInteger = trimZero(partInteger); //去除前导0
countIntegerLength = oInputValue.length;
}
else //输入是小数
{
partInteger = oInputValue.substring(0,iPoint);
partInteger = trimZero(partInteger); //去除前导0
countIntegerLength = partInteger.length;
//直接用去尾法截取小数位
partDecimal = oInputValue.substring(iPoint + 1, iPoint + 1 + allowDecimalLength);
countDecimalLength = partDecimal.length;
}
if (partInteger == "") //去除前导0后为空
{
partInteger = "0";
}
//判断整数部分的位数是否超过允许的位数,若是则溢出为0
if(countIntegerLength > allowIntegerLength)
{
partInteger = "0";
bOverflow = true;
}
//将不足小数部分补零
if(countDecimalLength < allowDecimalLength)
{
for (var iDecimal = 0; iDecimal < (allowDecimalLength - countDecimalLength); iDecimal++)
partDecimal = partDecimal + "0";
}
//将整数部分和小数部分组合
if (partDecimal != "")
{
oInput.value = partInteger + "." + partDecimal;
}
else
{
oInput.value = partInteger
}
if (bOverflow) oInput.focus();
}
/************************************************************************************
名称: checkFloat()
功能: 该函数用于限制输入框(INPUT)只能输入数字和小数点
参数: 无---默认当前输入框(INPUT)
返回: 布尔值; true--有效输入; false--无效输入
引用: 无
说明: 一般用于INPUT对象的ONKEYPRESS事件
*对汉字的输入没有限制
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************************/
function checkFloat()
{
event.cancelBubble = true;
var objSrc = event.srcElement;
var strValue;
if (objSrc.tagName == "INPUT")
{
strValue = objSrc.value
if (strValue.indexOf(".") != -1)
{
if(event.keyCode >= 48 && event.keyCode <= 57)
return true;
else
return false;
}
else
{
if((event.keyCode >= 48 && event.keyCode <= 57) || event.keyCode == 46)
return true;
else
return false;
}
}
}
/**************************************************************************
名称: formatNumber(NumberValue, iDecimal)
功能: 该函数用于格式化数值型数据
参数: NumberValue---入参;数字;待格式化的数值数据
iDecimal------入参;数字;小数位数
返回: 数值型
引用: trim(strValue);trimZero(strValue);existChinese(strValue);
说明: 如果输入数据包含汉字,则返回空值
如果输入数据大于规定的位数,则溢出为0,并格式化成相应的小数位数
如果输入数据的小数位数大于要求的位数,则用去尾法消去,若不足要求的小数位数则补零
小数点占一位
一般用于INPUT对象的ONBLUR事件
Author: Albertzhu
LMDate: 2001-12-30
**************************************************************************/
function formatNumber(NumberValue, iDecimal)
{
var iTmp = "";
if ( iDecimal == null ) iDecimal = 0; //默认没有小数位
var strNumber = NumberValue + "";
if (isNaN(strNumber) || (strNumber.length == 0))
{
for (i = 0; i < iDecimal; i++)
iTmp += "0"
if (iTmp != "")
strNumber = "0." + iTmp
else
strNumber = "0";
return strNumber;
}
var ifirst = 0;
for(var iN = 0; iN < strNumber.length-1; iN++)
{
if(strNumber.indexOf(".") == 1)
break;
else
if(strNumber.charAt(iN) == "0")
ifirst += 1;
else
break;
}
strNumber = strNumber.substring(ifirst);
if(strNumber.indexOf(".") == 0) strNumber = "0" + strNumber;
if(strNumber.indexOf("-.") == 0) strNumber = "-0." + strNumber.substring(2);
var iDi = strNumber.indexOf(".",0);
if(iDi < 0)
{
for (i = 0; i < iDecimal; i++)
iTmp += "0"
if (iTmp != "")
strNumber += "." + iTmp;
return strNumber;
}
var iDiLength = strNumber.length - (iDi+1);
if (iDiLength == iDecimal)
return strNumber;
if (iDiLength < iDecimal)
{
for (var iLoop = iDecimal; iLoop > iDiLength; iLoop--)
strNumber += '0';
return strNumber;
}
else
{
var iNum1 = parseFloat(strNumber);
iNum1 = (iNum1 + (5 / Math.pow(10,(iDecimal + 1)))) * (Math.pow (10,iDecimal));
iNum1 = Math.floor(iNum1);
iNum1 = iNum1 / Math.pow (10,iDecimal);
strNumber = new String(iNum1);
var iDi = strNumber.indexOf(".",0);
if(iDi < 0)
{
for (i = 0; i < iDecimal; i++)
iTmp += "0"
if (iTmp != "")
strNumber += "." + iTmp;
return strNumber;
}
var iDiLength = strNumber.length - (iDi+1);
if (iDiLength == iDecimal)
return strNumber;
if (iDiLength < iDecimal)
{
for (var iLoop = iDecimal; iLoop > iDiLength; iLoop--)
strNumber += "0";
return strNumber;
}
}
}
/**************************************************************************
名称: InputField(name, description, checkCondition)
功能: 该函数用于创建字段对象
参数: name------------入参;必输;字符串;字段对象的名称
description-----入参;可选;字符串;字段对象的说明
checkCondition--入参;可选;字符串;检查条件
返回: 字段对象
引用: 无;
说明: 字段说明默认为空--""
检查条件默认为空--""
本对象用New方法创建,如 var objFld = new InputField("FieldName","FieldDescription")
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function InputField(name, description, checkCondition, setFocus)
{
this.fieldName = name;
if (description == null)
{
this.description = "";
}
else
{
this.description = description;
}
if (checkCondition == null)
{
this.checkCondition = "";
}
else
{
this.checkCondition = checkCondition;
}
if ((setFocus == "N")||(setFocus == "n"))
{
this.setFocus ="N"
}
else
{
this.setFocus = "Y";
}
}
/**************************************************************************
名称: getHtmlElement(InputField, frmName, bAlert)
功能: 该函数用于获得页面指定表单的指定元素
参数: InputField------入参;必输;对象;指定的字段对象
frmName----入参;可选;字符串;FORM表单名称
bAlert-----入参;可选;布尔值;是否弹出提示框
返回: 对象
引用: InputField(name, description, checkCondition);
说明: 默认在整个页面(DOCUMENT)查找
如果不存在指定的FORM表单,则返回null值
如果不存在指定的字段元素,则返回null值
默认弹出提示框
如果存在多个同名元素,则返回元素对象数组,否则返回元素对象
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function getHtmlElement(InputField, frmName, bAlert)
{
var htmlElement;
var bNullAlert;
if (bAlert == null)
{
bNullAlert = true;
}
else
{
bNullAlert = bAlert;
}
if (frmName != null) //在指定的FROM表单中查找
{
var objFrm = document.all(frmName);
if (objFrm == null)
{
if (bNullAlert)
{
alert("不存在指定的Form表单[" + frmName + "]。");
}
return null;
}
htmlElement = objFrm.all(InputField.fieldName);
}
else //在整个页面中查找
{
htmlElement = document.all(InputField.fieldName);
}
if (htmlElement == null)
{
if (bNullAlert)
{
var strFldDesc = InputField.description;
if (strFldDesc != "")
{
strFldDesc = "--" + strFldDesc;
}
if (frmName != null)
{
alert("在指定的Form表单[" + frmName + "]中不存在指定的元素[" + InputField.fieldName + "]" + strFldDesc + "。");
}
else
{
alert("在页面中不存在指定的元素[" + InputField.fieldName + "]" + strFldDesc + "。");
}
}
return null;
}
return htmlElement;
}
/**************************************************************************
名称: checkMasterValidate(aFields, frmName)
功能: 该函数用于检查主表字段值是否有效
参数: aFields----入参;必输;数组对象;待检查的字段对象数组
frmName----入参;可选;字符串;FORM表单名称
返回: 布尔型
引用: InputField(name, description, checkCondition);
说明: 默认在整个页面(DOCUMENT)检查
如果页面中不存在指定的FORM表单,则返回false
如果在指定的FORM表单中不存在指定的字段元素,则返回false
如果在指定的FORM表单中指定的字段元素的值为空,则返回false
否则返回true
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function checkMasterValidate(aFields, frmName)
{
var fldCount = aFields.length;
var fldElement;
for (var iField = 0; iField < fldCount; iField++)
{
fldElement = getHtmlElement(aFields[iField], frmName)
/*************************************************************************
if((fldElement.length != null) && (fldElement.length > 0 )) //有重复元素
{
alert("存在重复元素[" + aFields[iField].fieldName + "]。" + fldElement.length);
return false;
} //select 框
**************************************************************************/
if (fldElement != null)
{
if (trim(fldElement.value) == aFields[iField].checkCondition)
{
if (aFields[iField].description != "")
{
alert("请输入[" + aFields[iField].description + "]。");
}
else
{
alert("请输入[" + aFields[iField].fieldName + "]。");
}
if (aFields[iField].setFocus == "Y")
{
fldElement.focus();
}
return false;
}
}
else
{
return false;
}
}
return true;
}
/**************************************************************************
名称: checkDetailValidate(aFields, frmName)
功能: 该函数用于检查明细表字段值是否有效
参数: aFields----入参;必输;数组对象;待检查的字段对象数组
frmName----入参;可选;字符串;FORM表单名称
返回: 布尔型
引用: InputField(name, description, checkCondition);trim(strValue);
说明: 默认在整个页面(DOCUMENT)检查
如果页面中不存在指定的FORM表单,则返回false
如果在指定的FORM表单中不存在指定的字段元素,则返回false
如果在指定的FORM表单中指定的字段元素的值为空,则返回false
否则返回true
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function checkDetailValidate(aFields, frmName)
{
var fldCount = aFields.length;
var fldElement;
var curElementLine;
for (var iField = 0; iField < fldCount; iField++)
{
fldElement = getHtmlElement(aFields[iField], frmName, false) //当前字段
{
if (fldElement == null) //没有明细行
{
alert("请输入明细。");
return false;
}
if((fldElement.length != null) && (fldElement.length > 0 )) //明细多行
{
for (var iLine = 0; iLine < fldElement.length; iLine++) //当前字段的每一行
{
curElementLine = fldElement[iLine];
if (trim(curElementLine.value) == aFields[iField].checkCondition)
{
if (aFields[iField].description != "")
{
alert("请输入明细[" + aFields[iField].description + "]栏。");
}
else
{
alert("请输入明细[" + aFields[iField].fieldName + "]栏。");
}
if (aFields[iField].setFocus == "Y")
{
curElementLine.focus();
}
return false;
}
}
}
else //明细单行
{
if (trim(fldElement.value) == aFields[iField].checkCondition)
{
if (aFields[iField].description != "")
{
alert("请输入明细[" + aFields[iField].description + "]栏。");
}
else
{
alert("请输入明细[" + aFields[iField].fieldName + "]栏。");
}
if (aFields[iField].setFocus == "Y")
{
fldElement.focus();
}
return false;
}
}
}
}
return true;
}
/**************************************************************************
名称: table_onclick(oTable)
功能: 该函数用于处理TABLE的点击事件
参数: oTable----入参;必输;TABLE对象;待响应的TABLE对象
返回: 布尔型
引用: changeRow(iRow,oTable)
说明: 由于全局变量的关系,目前只能处理一个页面中的单个表
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
var m_iTableCurCol = -1;
var m_iTableCurRow = -1;
function table_onclick(oTable,itemname,itemname1)
{//alert("oTable"+oTable);
event.cancelBubble = true;
var src = window.event.srcElement;
//alert("src"+src);
while (src.tagName != "TR" )
{
if (src.tagName == "TD")
{
if (src.cellIndex != m_iTableCurCol)
m_iTableCurCol = -1;
}
if (src.tagName == "TABLE" || src.tagName=="BODY") return false;
src = src.parentElement;
}
if (src.rowIndex == 0) return false;
changeRow(src.rowIndex, oTable,itemname,itemname1);
}
/**************************************************************************
名称: changeRow(iRow,oTable)
功能: 该函数用于处理TABLE的点击事件
参数: iRow----入参;必输;获得焦点的行号
oTable--入参;必输;TABLE对象;待响应的TABLE对象
返回: 布尔型
引用: 无
说明: 由于全局变量的关系,目前只能处理一个页面中的单个表
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function changeRow(iRow,oTable,itemname,itemname1)
{
var src = window.event.srcElement;
var bMoveRow = (m_iTableCurRow != iRow)
var oRows = oTable.rows;
if (m_iTableCurRow > 0 && m_iTableCurRow <= oRows.length - 1)
{
jo=m_iTableCurRow % 2
if(jo!=0)
oRows[m_iTableCurRow].className = "MouseOutWhite";
else
oRows[m_iTableCurRow].className = "MouseOutHui";
}
m_iTableCurRow=iRow;
var oRowlength = oTable.rows.length;
var I=0;
var selected="";
if(!itemname) return;
if(!itemname.length) {
if(itemname.checked==true)
{
oRows[1].className = "Selected_Row";
}
}else{
for(var i=0;i 0 && m_iTableCurRow <= oRows.length - 1)
{
jo=m_iTableCurRow % 2
if(jo!=0)
oRows[m_iTableCurRow].className = "MouseOutWhite";
else
oRows[m_iTableCurRow].className = "MouseOutHui";
}
}
else if(src.tagName!="INPUT" && itemname[m_iTableCurRow-1].checked==false )
{
oRows[iRow].className = "Selected_Row";
itemname[m_iTableCurRow-1].checked=true;
var I=0;
if (document.jiayitongform.checkbox2.checked==true)
{document.jiayitongform.checkbox2.checked=false;}
if (document.jiayitongform.checkbox2.checked==false )
{
if(!itemname) return;
if(!itemname.length) {
if( itemname.checked==true)
{
I=I+1;}
}else{
for(var i=0;i 0 && m_iTableCurCol <= oRows[0].cells.length)
{
try
{
oRows(m_iTableCurRow).cells(m_iTableCurCol).lastChild.focus();
}
catch(e)
{}
}
//**************************************************************************88
return true;
}
/**************************************************************************
名称: getActiveRow(tblName)
功能: 该函数用于处理TABLE的点击事件
参数: tblName----入参;必输;待处理的TABLE名
返回: 布尔型
引用: 无
说明: 由于全局变量的关系,目前只能处理一个页面中的单个表
Author: Albertzhu
LMDate: 2001-12-31
**************************************************************************/
function getActiveRow(tblName, strAlert)
{
if (m_iTableCurRow == -1 )
{
if (strAlert == null)
{
alert("请选择待处理的行。")
}
else
{
alert(strAlert)
}
return false;
}
else
{
var oTable = document.all(tblName);
var aInputs = oTable.getElementsByTagName("input");
var oInput;
var oRadioBoxs = new Array();
var j = 0;
for(var i = 0; i < aInputs.length; i++)
{
oInput = aInputs[i];
if (oInput.type == "radio")
{
oRadioBoxs[j++] = oInput;
}
}
oRadioBoxs[m_iTableCurRow - 1].checked = true;
return true;
}
}
/**************************************************************************
新增鼠标移至表格变色的方法
**************************************************************************/
function table_on(oTable)
{
event.cancelBubble = true;
var src = window.event.srcElement;
while (src.tagName != "TR")
{
if (src.tagName == "TD")
{
if (src.cellIndex != m_iTableCurCol)
m_iTableCurCol = -1;
}
if (src.tagName == "TABLE" || src.tagName=="BODY") return false;
src = src.parentElement;
}
if (src.rowIndex == 0) return false;
var oRows = oTable.rows;
oRows[src.rowIndex].className = "Selected_Row";
}
function table_out(oTable)
{
event.cancelBubble = true;
var src = window.event.srcElement;
while (src.tagName != "TR")
{
if (src.tagName == "TD")
{
if (src.cellIndex != m_iTableCurCol)
m_iTableCurCol = -1;
}
if (src.tagName == "TABLE" || src.tagName=="BODY") return false;
src = src.parentElement;
}
if (src.rowIndex == 0) return false;
var oRows = oTable.rows;
if (src.rowIndex > 0 && src.rowIndex <= oRows.length - 1)
{
jo=src.rowIndex % 2
if(jo!=0)
oRows[src.rowIndex].className = "MouseOutWhite";
else
oRows[src.rowIndex].className = "MouseOutHui";
}
}
/************************************************************************************************
function : isDate(strD)
purpose : 判断一个字符串是否是合法的日期字符串。但字符串的格式必须是“YYYY/MM/DD”
parameters : strD: 日期字符串
return : true / false
*************************************************************************************************/
function isDate(strD)
{
if (strD == "" || strD == null)
return false;
var strDate = now(strD.replace(/-/g,"/"))
if (strDate == "" || strDate != strD)
return false;
else
return true;
}
/**************************************************************************************************
function : isEmail(strEmail)
purpose : 检查字符串是否是一个合法的Email地址
parameter : strEmail Email地址字符串
return : true/false
***************************************************************************************************/
function isEmail(strEmail)
{
var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
if (!reg1.test(strEmail) && reg2.test(strEmail))
return true
else
return false;
}
/************************************************************************************************
function : formatNumber(strNumber)
purpose : 格式化数字。在数字中加入千分分隔符“,”
parameters : strNumber : 需格式化的数字
return : Format money
*************************************************************************************************/
function formatNumber(strNumber)
{
strNumber = "" + strNumber;
DecSeparator = "."
ThousandsSeparator = ","
if (strNumber.indexOf (DecSeparator, 0) != -1)
{
IntegerAmount = strNumber.substring(0, strNumber.indexOf (DecSeparator, 0));
FractionAmount = strNumber.substring(strNumber.indexOf (DecSeparator, 0)+1, strNumber.indexOf (DecSeparator, 0)+3);
if (FractionAmount.length == 0)
FractionAmount = "00";
if (FractionAmount.length == 1)
FractionAmount = FractionAmount + "0";
}
else
{
IntegerAmount = strNumber;
FractionAmount = "00";
}
OutString = "";
len = IntegerAmount.length;
if (len>=3)
{
while (len>0)
{
TempString = IntegerAmount.substring(len-3, len)
if (TempString.length == 3)
{
OutString = ThousandsSeparator + TempString + OutString
len = len-3;
}
else
{
OutString = TempString + OutString
len = 0
}
}
if (OutString.substring(0, 1) == ThousandsSeparator)
IntegerAmount = OutString.substring (1, OutString.length)
else
IntegerAmount = OutString
}
return (IntegerAmount + DecSeparator + FractionAmount);
}
/************************************************************************************************
function : unFormatNumber(strNumber)
purpose : 将由函数 formatNumber 格式过的字符串中的格式去掉。
parameters : strNumber 被 formatNumber 格式过的字符串
return :
*************************************************************************************************/
function unFormatNumber(strNumber)
{
strNumber = strNumber + "";
var oReg=/,/g;
strNumber = strNumber.replace(oReg,"")
return parseFloat(strNumber)
}
/*-------------------------------------------------------------------------
function : formatDigits(iNum, iDn)
purpose : 将数字的格式转变为指定小数位的格式。小数采用四舍五入法截取。
parameter : iNum-需转换的数据。 iDn-小数位数。
return : 返回字符串型格式化后数据
--------------------------------------------------------------------------*/
function formatDigits(iNum, iDn)//OK.
{
var iTmp="";
if ( iDn == null )
iDn = 0;
var strNum =iNum + "";
strNum = trim(strNum);
if (isNaN(strNum) || strNum.length == 0)
{
for (i = 0; i < iDn; i++)
iTmp += "0"
if (iTmp != "")
strNum = "0." + iTmp
else
strNum = "0";
return strNum;
}
var ifirst=0;
for(var iN=0;iNiDiLength; iLoop--)
strNum += '0';
return strNum;
}
else
{
var iNum1 = parseFloat(strNum);
iNum1 = (iNum1+(5/Math.pow(10,(iDn+1))))*(Math.pow (10,iDn));
iNum1 = Math.floor(iNum1);
iNum1 = iNum1/Math.pow (10,iDn);
strNum = new String(iNum1);
var iDi = strNum.indexOf(".",0);
if(iDi < 0)
{
for (i = 0; i < iDn; i++)
iTmp += "0"
if (iTmp != "")
strNum += "."+iTmp;
return strNum;
}
var iDiLength = strNum.length - (iDi+1);
if (iDiLength == iDn)
return strNum;
if (iDiLength < iDn)
{
for (var iLoop=iDn; iLoop>iDiLength; iLoop--)
strNum += '0';
return strNum;
}
}
}
/****************************************************************************************************
function : now(strD)
purpose : 获得当前日期,或将指定的字符串转化为标准的YYYY/MM/DD
parameter : strD 任意合法格式的日期字符串
return : "YYYY/MM/DD"格式的字符串,发生错误是时返回空字符串
****************************************************************************************************/
function now(strD)
{
var dateObj
if (strD == "")
return "";
if(strD == null)
dateObj = new Date();
else
{
dateObj = new Date(strD);
if (isNaN(dateObj))
return "";
}
var strDate = "";
strDate += dateObj.getFullYear();
strDate += "/";
strDate += (dateObj.getMonth()>8)? dateObj.getMonth()+1: "0"+(dateObj.getMonth()+1);
strDate += "/";
strDate += (dateObj.getDate()>9)? dateObj.getDate(): "0" +dateObj.getDate();
return strDate;
}
/****************************************************************************************************
function : time(strD)
purpose : 获得当前时间,或将指定的字符串转化为标准的HH:MM:SS
parameter : strD 任意合法格式的时间字符串
return : "HH:MM:SS"格式的字符串,发生错误是时返回空字符串
****************************************************************************************************/
function time(strD)
{
var dateObj
if (strD == "")
return "";
if(strD == null)
dateObj = new Date();
else
{
dateObj = new Date(strD);
if (isNaN(dateObj))
return "";
}
var strDate = "";
strDate += (dateObj.getHours()>9)? dateObj.getHours(): "0" + (dateObj.getHours());
strDate += ":";
strDate += (dateObj.getMinutes()>9)? dateObj.getMinutes() : "0" + dateObj.getMinutes();
strDate += ":";
strDate += (dateObj.getSeconds()>9)? dateObj.getSeconds() : "0" + dateObj.getSeconds();
return strDate;
}
/********************************************************************
function : trim(str)
purpose : 去除字符串中的首尾空格
parameters : str
return :
********************************************************************/
/*function trim(str)
{
str = str.replace(/(^\s*)|(\s*$)/g, "");
return str
}*/
/********************************************************************
function : clearInput()
purpose : 清空所有的文本输入框。包括 ,