pageLoadFinish = false;
function pageFinished()
{
pageLoadFinish = true;
}
/*
-------------- 函数检索 --------------
trim函数: trim() lTrim() rTrim()
检验输入的长度: strlength(str)
校验字符串是否为空: checkIsNotEmpty(str)
校验字符串是否为整型: checkIsInteger(str)
校验整型最小值: checkIntegerMinValue(str,val)
校验整型最大值: checkIntegerMaxValue(str,val)
校验整型是否为非负数: isNotNegativeInteger(str)
校验是否是数字(包括正数和负数): isNegativeDouble(str)
校验两个整型的先后: checkIntegerEarlier(strStart,strEnd)
校验字符串是否为浮点型: checkIsDouble(str)
校验浮点型最小值: checkDoubleMinValue(str,val)
校验浮点型最大值: checkDoubleMaxValue(str,val)
校验浮点型是否为非负数: isNotNegativeDouble(str)
校验浮点型是否为非负数:(小数点后6位) blurIsNotNegativeDouble_6(str);
判断浮点型数据的小数位数 blurIsNotNegativeDoublePrecision( checkElement, actionElement, infoStr, precision);
校验两个日期的先后: checkDateEarlier(strStart,strEnd)
校验字符串是否为email型: checkEmail(str)
校验字符串是否为中文: checkIsChinese(str)
校验字符串是否符合自定义正则表达式: checkMask(str,pat)
得到文件的后缀名: getFilePostfix(oFile)
校验字符串是否为日期型: checkDate(str)
校验字符串最大长度: checkMaxLen(str)
校验字符串最小长度: checkMinLen(str)
校验字符串是否为空: checkEmpty(str)
根据生日计算年龄 calcAge( birthDay );
驾驶证号码检验 checkDrivinglicenceNo(licenceNo)
校验字符串最大长度: getDefauleValue( fieldName, str)
校验字符串中包含中文字符: checkStrIncludeChinese(sString)
checkMoreZeroOnKeyPress( text ) 输入框只能输入数字
function isLeapYear( birthDay ); // 是否为闰年
function addYears( strDate, addNum ) // 计算后几年
function addMonths( strDate, addNum ) // 计算后几月
function addDays( strDate, addNum ) // 计算后几天
idCard15To18 // 身份证 15 转 18位
checkIdcard(str) //身份证验证书
function checkFieldMaxLength( chkForm ) // 校验输入字段的最大值。
根据8位日期转换成10位日期 checkDateOnKeyDown( text ); // onKeyDown="checkDateOnKeyDown(this)"
-- 只允许输入浮点数的校验: checkFloatOnKeyDown(text, n) // onKeyDown="checkFloatOnKeyDown(this, 2)"
-------------- 函数检索 --------------
*/
//费率只能输入二位小数
function baserateKeyUp(baserate){
var decimaldigits;
var baseratevalue=baserate.value;
var at_sign =baseratevalue.indexOf(".");
var at_sing1=baseratevalue.indexOf(".",at_sign+1);
if(at_sing1!=-1){
baserate.value=baseratevalue.substring(0,at_sing1);
return false;
}
if(at_sign!=-1){
decimaldigits=baseratevalue.substring(at_sign+1,baseratevalue.length);
if(decimaldigits.length>2){
baserate.value=baseratevalue.substring(0,at_sign+1)+baseratevalue.substring(at_sign+1,at_sign+3);
return false;
}
}
return true;
}
//判断是否为数字
function checkInt(tmp){
//如果为空,则通过校验
if(tmp == "")
return true;
for(var i=0;i<tmp.length;i++)
{
var temp=tmp.substring(i,i+1);
if((temp>='0'&& temp<='9')||(temp=='.'))
{} //check input in 0-9 and '.'
else{
return false;
}
}
return true;
}
// var matchNumberKeyCode = new Array(48,49,50,51,52,53,54,55,56,57); // '0123456789';
function checkMoreZeroOnKeyPress(text)
{
var matchNumberKeyChars = '.0123456789';
if( isSpecialKey() ) return;
inputChar = String.fromCharCode(event.keyCode);
if( !isLegalChar( inputChar, matchNumberKeyChars ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( len == 0 )
{
if( inputChar == '0' )
event.returnValue=false
}
}
}
function isLegalChar(inputChar,matchStr)
{
if (matchStr.indexOf (inputChar, 0)==-1)
return false;
else
return true;
}
function isSpecialKey()
{
if( event.keyCode <= 32 )
return true;
else
return false;
}
/**
* added by LxcJie 2004.6.25
* 去除多余空格函数
* trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
* 用法:
* var str = " hello ";
* str = str.trim();
*/
String.prototype.trim = function()
{
return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
return this.replace(/(^[\s]*)/g, "");
}
String.prototype.rTrim = function()
{
return this.replace(/([\s]*$)/g, "");
}
//元素动作
function elementAction( processElement ) {
if( processElement.type == 'text' || processElement.type == 'textarea' ) {
processElement.focus();
processElement.select();
} else {
processElement.focus();
}
}
/********************************** Empty **************************************/
/**
*校验字符串是否为空
*返回值:
*如果不为空,定义校验通过,返回true
*如果为空,校验不通过,返回false 参考提示信息:输入域不能为空!
*/
function checkIsNotEmpty(str)
{
if(str.trim() == "")
return false;
else
return true;
}
/*--------------------------------- Empty --------------------------------------*/
/********************************** Integer *************************************/
/**
*校验字符串是否为整型
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串全部为数字,校验通过,返回true
*如果校验不通过, 返回false 参考提示信息:输入域必须为数字!
*/
function checkIsInteger(str)
{
//如果为空,则通过校验
if(str == "")
return true;
if(/^(\-?)(\d+)$/.test(str))
return true;
else
return false;
}
/**
*校验整型最小值
*str:要校验的串。 val:比较的值
*
*返回值:
*如果为空,定义校验通过, 返回true
*如果满足条件,大于等于给定值,校验通过,返回true
*如果小于给定值, 返回false 参考提示信息:输入域不能小于给定值!
*/
function checkIntegerMinValue(str,val)
{
//如果为空,则通过校验
if(str == "")
return true;
if(typeof(val) != "string")
val = val + "";
if(checkIsInteger(str) == true)
{
if(parseInt(str,10)>=parseInt(val,10))
return true;
else
return false;
}
else
return false;
}
/**
*校验整型最大值
*str:要校验的串。 val:比较的值
*
*返回值:
*如果为空,定义校验通过, 返回true
*如果满足条件,小于等于给定值,校验通过,返回true
*如果大于给定值, 返回false 参考提示信息:输入值不能大于给定值!
*/
function checkIntegerMaxValue(str,val)
{
//如果为空,则通过校验
if(str == "")
return true;
if(typeof(val) != "string")
val = val + "";
if(checkIsInteger(str) == true)
{
if(parseInt(str,10)<=parseInt(val,10))
return true;
else
return false;
}
else
return false;
}
/**
*校验整型是否为非负数
*str:要校验的串。
*
*返回值:
*如果为空,定义校验通过,返回true
*如果非负数, 返回true
*如果是负数, 返回false 参考提示信息:输入值不能是负数!
*/
function isNotNegativeInteger(str)
{
//如果为空,则通过校验
if(str == "")
return true;
if(checkIsInteger(str) == true)
{
if(parseInt(str,10) < 0)
return false;
else
return true;
}
else
return false;
}
/**
*校验两个整型的先后
*返回值:
*如果其中有一个日期为空,校验通过, 返回true
*如果第一个小于等于第二个,校验通过, 返回true
*如果第一个大于第二个, 返回false 参考提示信息: 第一个不能大于第二个。
*/
function checkIntegerEarlier(strStart,strEnd)
{
//如果有一个输入为空,则通过检验
if (( strStart == "" ) || ( strEnd == "" ))
return true;
if(isNotNegativeInteger(strStart) == false || isNotNegativeInteger(strEnd) == false)
return false;
if(parseInt(strStart,10) > parseInt(strEnd,10))
return false;
else
return true;
}
/**
*校验字符串是否为浮点型
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串全部为浮点型,校验通过,返回true
*如果校验不通过, 返回false 参考提示信息:输入域必须为浮点型!
*/
function checkIsDouble(str,precision)
{
//如果为空,则通过校验
if(str == "")
return true;
if(precision==null)
precision=2;
var checkDouble = /^(-1\+)?\d+(\.\d{1,20})?$/;
if(precision==2)
checkDouble = /^(-1\+)?\d+(\.\d{1,2})?$/; //创建正则表达式校验浮点数对象
else if(precision==3)
checkDouble = /^(-1\+)?\d+(\.\d{1,3})?$/;
else if (precision==4)
checkDouble = /^(-1\+)?\d+(\.\d{1,4})?$/;
else if (precision==6)
checkDouble = /^(-1\+)?\d+(\.\d{1,6})?$/;
if(checkDouble.test(str))
return true;
else
return false;
}
/**
*校验字符串是否为浮点型(小数点后3位)
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串全部为浮点型,校验通过,返回true
*如果校验不通过, 返回false 参考提示信息:输入域必须为浮点型!
*/
function checkIsDouble_6(str)
{
//如果为空,则通过校验
if(str == "")
return true;
var checkDouble = /^(-1\+)?\d+(\.\d{1,6})?$/; //创建正则表达式校验浮点数对象
if(checkDouble.test(str))
return true;
else
return false;
}
/**
*校验浮点型最小值
*str:要校验的串。 val:比较的值
*
*返回值:
*如果为空,定义校验通过, 返回true
*如果满足条件,大于等于给定值,校验通过,返回true
*如果小于给定值, 返回false 参考提示信息:输入域不能小于给定值!
*/
function checkDoubleMinValue(str,val)
{
//如果为空,则通过校验
if(str == "")
return true;
if(typeof(val) != "string")
val = val + "";
if(checkIsDouble(str) == true)
{
if(parseFloat(str)>=parseFloat(val))
return true;
else
return false;
}
else
return false;
}
/**
*校验浮点型最大值
*str:要校验的串。 val:比较的值
*
*返回值:
*如果为空,定义校验通过, 返回true
*如果满足条件,小于等于给定值,校验通过,返回true
*如果大于给定值, 返回false 参考提示信息:输入值不能大于给定值!
*/
function checkDoubleMaxValue(str,val)
{
//如果为空,则通过校验
if(str == "")
return true;
if(typeof(val) != "string")
val = val + "";
if(checkIsDouble(str) == true)
{
if(parseFloat(str)<=parseFloat(val))
return true;
else
return false;
}
else
return false;
}
/**
*校验浮点型是否为非负数
*str:要校验的串。
*
*返回值:
*如果为空,定义校验通过,返回true
*如果非负数, 返回true
*如果是负数, 返回false 参考提示信息:输入值不能是负数!
*/
function isNotNegativeDouble(str)
{
//如果为空,则通过校验
if(str == "")
return true;
if(checkIsDouble(str) == true)
{
if(parseFloat(str) < 0)
return false;
else
return true;
}
else
return false;
}
function isNotNegativeDouble(str,precision)
{
//如果为空,则通过校验
if(str == "")
return true;
if(checkIsDouble(str,precision) == true)
{
if(parseFloat(str) < 0)
return false;
else
return true;
}
else
return false;
}
/**
*校验浮点型是否为非负数
*str:要校验的串。
*
*返回值:
*如果为空,定义校验通过,返回true
*如果非负数, 返回true
*如果是负数, 返回false 参考提示信息:输入值不能是负数!
*/
function isNotNegativeDouble_6(str)
{
//如果为空,则通过校验
if(str == "")
return true;
if(checkIsDouble_6(str) == true)
{
if(parseFloat(str) < 0)
return false;
else
return true;
}
else
return false;
}
/**
*校验两个日期的先后
*返回值:
*如果其中有一个日期为空,校验通过, 返回true
*如果起始日期早于等于终止日期,校验通过, 返回true
*如果起始日期晚于终止日期, 返回false 参考提示信息: 起始日期不能晚于结束日期。
*/
function checkDateEarlier(strStart,strEnd)
{
//如果有一个输入为空,则通过检验
if (( strStart == "" ) || ( strEnd == "" ))
return true;
if(checkDate(strStart) == false || checkDate(strEnd) == false)
return false;
var strStartYear = strStart.substring(0,4);
var strStartMonth = strStart.substring(5,7);
var strStartDay = strStart.substring(8,10);
var strEndYear = strEnd.substring(0,4);
var strEndMonth = strEnd.substring(5,7);
var strEndDay = strEnd.substring(8,10);
var d1 = strStartYear + strStartMonth + strStartDay;
var d2 = strEndYear + strEndMonth + strEndDay;
if(parseInt(d1,10) > parseInt(d2,10))
return false;
else
return true;
}
function checkDateBefore(strStart,strEnd)
{
//如果有一个输入为空,则通过检验
if (( strStart == "" ) || ( strEnd == "" ))
return true;
if(checkDate(strStart) == false || checkDate(strEnd) == false)
return false;
var strStartYear = strStart.substring(0,4);
var strStartMonth = strStart.substring(5,7);
var strStartDay = strStart.substring(8,10);
var strEndYear = strEnd.substring(0,4);
var strEndMonth = strEnd.substring(5,7);
var strEndDay = strEnd.substring(8,10);
var d1 = strStartYear + strStartMonth + strStartDay;
var d2 = strEndYear + strEndMonth + strEndDay;
if(parseInt(d1,10) > parseInt(d2,10))
return false;
else
return true;
}
// 计算后几年
function addYears( strDate, addNum )
{
var newdate=getDateObj(strDate);
year = newdate.getMonth();
var dateObj = new Date( newdate.getYear()+addNum, newdate.getMonth(), newdate.getDate() );
return formartDate( dateObj );
}
// 计算后几月
function addMonths( strDate, addNum )
{
var newdate=getDateObj(strDate);
year = newdate.getMonth();
var dateObj = new Date( newdate.getYear(), newdate.getMonth()+addNum, newdate.getDate() );
return formartDate( dateObj );
}
// 计算后几天
function addDays( strDate, addNum )
{
var newdate=getDateObj(strDate);
var newtimems=newdate.getTime()+(addNum*24*60*60*1000);
newdate.setTime(newtimems);
return formartDate( newdate );
}
function isLeapYear( year )
{
if ( ( year % 400 ) == 0 )
return true;
else if ( ( year % 4 ) == 0 )
{
if ( ( year % 100 ) == 0 )
return false;
else return true;
}
else return false;
}
function getLastDayOfMonth( strDate )
{
dayArray = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
var newdate=getDateObj(strDate);
year = newdate.getYear();
month = newdate.getMonth();
retn = 0;
if ( month == 1 )
{
if ( isLeapYear(year) )
{
retn = 29;
}
else
{
retn = dayArray[month];
}
}
else
{
retn = dayArray[month];
}
return retn;
}
// 根据生日计算年龄
function calcAge( birthDay )
{
var birthYear = parseInt( birthDay.substring(0,4), 10);
var birthMonth = 0;
var birthDay = 0;
if( birthDay.length >= 7 )
{
birthMonth = parseInt( (birthDay.substring(5,7)-1), 10);
if( birthDay.length >= 10 )
{
birthDay = parseInt( birthDay.substring(8,10), 10);
}
}
var days = new Date();
var caldate = days.getDate() - birthDay ;
var calmonth = days.getMonth() - birthMonth;
var calyear = days.getYear() - birthYear;
if( caldate < 0 )
calmonth = calmonth -1;
if( calmonth < 0 )
calyear = calyear - 1
if( calmonth < -11 )
calyear = calyear - 2
return calyear;
}
/**
*校验字符串是否为email型
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串为email型,校验通过, 返回true
*如果email不合法, 返回false 参考提示信息:Email的格式不正確!
*/
function checkEmail(str)
{
//如果为空,则通过校验
if(str == "")
return true;
if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
|| str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
return false;
else
return true;
}
/**
*校验字符串是否为中文
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串为中文,校验通过, 返回true
*如果字串为非中文, 返回false 参考提示信息:必须为中文!
*/
function checkIsChinese(str)
{
//如果值为空,通过校验
if (str == "")
return true;
var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
if (pattern.test(str))
return true;
else
return false;
}
/**
*校验字符串是否符合自定义正则表达式
*str 要校验的字串 pat 自定义的正则表达式
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串符合,校验通过, 返回true
*如果字串不符合, 返回false 参考提示信息:必须满足***模式
*/
function checkMask(str,pat)
{
//如果值为空,通过校验
if (str == "")
return true;
var pattern = new RegExp(pat,"gi")
if (pattern.test(str))
return true;
else
return false;
}
/**
* added by LxcJie 2004.6.25
* 得到文件的后缀名
* oFile为file控件对象
*/
function getFilePostfix(oFile)
{
if(oFile == null)
return null;
var pattern = /(.*)\.(.*)$/gi;
if(typeof(oFile) == "object")
{
if(oFile.value == null || oFile.value == "")
return null;
var arr = pattern.exec(oFile.value);
return RegExp.$2;
}
else if(typeof(oFile) == "string")
{
var arr = pattern.exec(oFile);
return RegExp.$2;
}
else
return null;
}
//捕捉Enter键下事件并转换为Tab键事件
function keyHandler(evnt)
{
if (event.keyCode==13 && event.srcElement.tagName != "TEXTAREA" )
event.keyCode=9;
return true;
}
//document.onkeydown=keyHandler;
function strlength(str)
{
if(str==null){
return 0;
}
var len = 0;
for ( var i = 0;i<str.length;i++)
{
if (str.charCodeAt(i)>255)
len+=2;
else
len++;
}
return len;
}
function getDateObj( strDate )
{
try
{
var strYear = strDate.substring(0,4);
var strMonth = strDate.substring(5,7)-1;
var strday = strDate.substring(8,10);
var dateObj = new Date( strYear, strMonth, strday );
return dateObj
}
catch( e )
{
return;
}
}
function formartDate( dateObj )
{
if( dateObj == null )
return "";
var year = dateObj.getFullYear();
var month = dateObj.getMonth()+1;
var date = dateObj.getDate();
var strStart = year;
if( month < 10 )
strStart = strStart+"-0"+month
else
strStart = strStart+"-"+month
if( date < 10 )
strStart = strStart+"-0"+date
else
strStart = strStart+"-"+date
return strStart
}
function checkDate( strDate )
{
if( strlength(strDate) == 0 )
{
return true;
}
try
{
var strYear = strDate.substring(0,4);
var strMonth = strDate.substring(5,7)-1;
var strday = strDate.substring(8,10);
var dateObj = new Date( strYear, strMonth, strday );
if (dateObj.getMonth() != parseInt(strMonth,10))
{
return false;
}
}
catch( e )
{
return false;
}
return true;
}
function checkDateYearMonth( strDate )
{
if( strlength(strDate) == 0 )
{
return true;
}
try
{
if(strlength(strDate) >7 || strlength(strDate) != 7){
return false;
}
if(strDate.substring(4,5)!='-'){
return false;
}
var strYear = strDate.substring(0,4);
var strMonth = strDate.substring(5,7)-1;
var strday = "01";
var dateObj = new Date( strYear, strMonth, strday );
if (dateObj.getMonth() != parseInt(strMonth,10))
{
return false;
}
}
catch( e )
{
return false;
}
return true;
}
function checkMaxLen( val, len )
{
if( strlength(val) > len )
{
return false;
}
return true;
}
function checkMinLen( val, len )
{
if( strlength(val) < len )
{
return false;
}
return true;
}
function checkEmpty( val )
{
if( strlength(val) == 0 )
{
return false;
}
return true;
}
//失去焦点时验证非负整数
function blurIsNotNegativeInteger( checkElement, actionElement, infoStr ) {
if( !isNotNegativeInteger( checkElement.value.trim() ) )
{
alert(infoStr+"应为非负整数!");
elementAction( actionElement );
return false;
}
return true;
}
//失去焦点时验证非负浮点数(小数点后2位)验证浮点型大于0、F-.2
function blurIsNotNegativeDouble( checkElement, actionElement, infoStr ) {
if( !isNotNegativeDouble( checkElement.value.trim() ) )
{
alert( infoStr+"应为小数点后2位的浮点数!" );
elementAction( actionElement );
checkElement.value="";
return false;
}
return true;
}
//失去焦点时验证非负浮点数(小数点后precision位)验证浮点型大于0、F-.2
function blurIsNotNegativeDouble_precision( checkElement, actionElement, infoStr, precision) {
if( !isNotNegativeDouble( checkElement.value.trim(),3 ) )
{
alert( infoStr+"应为小数点后" + precision + "位的浮点数!" );
elementAction( actionElement );
checkElement.value="";
return false;
}
return true;
}
//失去焦点时验证非负浮点数(小数点后3位)验证浮点型大于0、F-.3
function blurIsNotNegativeDouble_6( checkElement, actionElement, infoStr ) {
if( !isNotNegativeDouble_6( checkElement.value.trim() ) )
{
alert( infoStr+"应为小数点后6位的浮点数!" );
elementAction( actionElement );
checkElement.value="";
return false;
}
return true;
}
//失去焦点时验证日期yyyy-mm-dd
function blurCheckDate( checkElement, actionElement, infoStr ) {
if( !checkDate( checkElement.value.trim() ) )
{
alert("日期值错误!"+infoStr+"应该符合 YYYY-MM-DD 格式。");
elementAction( actionElement );
checkElement.value="";
return false;
}
return true;
}
//提交时检查日期是否符合其YYYY-MM的格式
function submitCheckDateYearMonth( checkElement, actionElement, infoStr ) {
if( !checkDateYearMonth( checkElement.value.trim() ) ) {
alert("日期值错误!"+infoStr+"应该符合 YYYY-MM 格式。");
elementAction( actionElement );
checkElement.value="";
return false;
}
}
//失去焦点时验证日期yyyy-mm-dd 初次登记日期的录入控制可以比系统当前日期早40年(包含),也可以比系统当前日期晚2个月
function blurCheckDateYearMonth( checkElement, actionElement, infoStr ) {
if( !checkDateYearMonth( checkElement.value.trim() ) ) {
alert("日期值错误!"+infoStr+"应该符合 YYYY-MM 格式。");
elementAction( actionElement );
checkElement.value="";
return false;
}
var firstRegisterDateString = document.getElementById('firstRegisterDateString');
var today = new Date();
var year = today.getYear();
var month = today.getMonth()+1;
var value = checkElement.value.trim();
var checkYear = value.substring(0,4);
var checkMonth = value.substring(5);
if (checkYear > year) {
alert("初次登记年月不得晚于出单日。");
form1.firstRegisterDateString.value = '';
return false;
}
if (checkYear == year && checkMonth > (month+2)) {
alert("初次登记年月不得晚于出单日2个月。");
form1.firstRegisterDateString.value = '';
return false;
}
if (checkYear < (year - 40)) {
alert("初次登记年月距离出单日最长提前40年。");
form1.firstRegisterDateString.value = '';
return false;
}
return true;
}
function removeAllSelectOption( selectObj ){
var len = selectObj.options.length;
for(i = 0; i < len; i++){
selectObj.options.remove(0);
}
}
function appendSelectOption( selectObj, opt_value, opt_name ){
var len = selectObj.options.length+1;
var newOption = document.createElement("OPTION");
selectObj.options.add(newOption, len);
newOption.value = opt_value;
newOption.innerText = opt_name;
}
function appendSelectOptionSelected( selectObj, opt_value, opt_name, opt_selected ){
var len = selectObj.options.length+1;
var newOption = document.createElement("OPTION");
selectObj.options.add(newOption, len);
newOption.value = opt_value;
newOption.innerText = opt_name;
newOption.selected = opt_selected;
}
var base64KeyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
base64KeyStr.charAt(enc1) +
base64KeyStr.charAt(enc2) +
base64KeyStr.charAt(enc3) +
base64KeyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
}
function decode64(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
var base64test = /[^A-Za-z0-9\+\/\=]/g;
if (base64test.exec(input)) {
alert("There were invalid base64 characters in the input text.\n" +
"Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\n" +
"Expect errors in decoding.");
}
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = base64KeyStr.indexOf(input.charAt(i++));
enc2 = base64KeyStr.indexOf(input.charAt(i++));
enc3 = base64KeyStr.indexOf(input.charAt(i++));
enc4 = base64KeyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
}
function adv_format(value,num) //四舍五入
{
var bool=false;
var a_str = formatnumber(value,num);
var a_int = parseFloat(a_str);
if (value.toString().length>a_str.length)
{
if(a_int < 0){
bool=true;
a_int = Math.abs(a_int);
}
var b_str = value.toString().substring(a_str.length,a_str.length+1)
var b_int = parseFloat(b_str);
if (b_int<5)
{
return a_str
}
else
{
var bonus_str,bonus_int;
if (num==0)
{
bonus_int = 1;
}
else
{
bonus_str = "0."
for (var i=1; i<num; i++)
bonus_str+="0";
bonus_str+="10001";
bonus_int = parseFloat(bonus_str);
}
a_str = formatnumber(a_int + bonus_int, num);
if(bool){
a_str = "-"+a_str;
}
}
}
return a_str
}
function formatnumber(value,num) //直接去尾
{
var a,b,c,i
a = value.toString();
b = a.indexOf('.');
c = a.length;
if (num==0)
{
if (b!=-1)
a = a.substring(0,b);
}
else
{
if (b==-1)
{
a = a + ".";
for (i=1;i<=num;i++)
a = a + "0";
}
else
{
a = a.substring(0,b+num+1);
for (i=c;i<=b+num;i++)
a = a + "0";
}
}
return a
}
var matchDateStr = '0123456789';
function checkDateOnKeyDown( text )
{
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
inputChar = String.fromCharCode(event.keyCode);
if( !isLegalChar( inputChar, matchDateStr ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
switch(len)
{
case 4:
case 7:
if( inputChar != '-' ) // '-'
str = str+'-';
break;
}
text.value = str;
}
}
var matchFloatKeyCode = new Array(48,49,50,51,52,53,54,55,56,57,189,190); //'0123456789-.';
// onKeyDown="checkFloatOnKeyDown(this)"
function checkFloatOnKeyDown( text )
{
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
if( !isLegalKeyCode( event.keyCode, matchFloatKeyCode ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( event.keyCode == 189 && len > 0 )
event.returnValue=false
else if( (str == '0' || str == "-0") && event.keyCode != 190 )
{
event.returnValue=false
}
else
{
index = str.indexOf(".");
if( index != -1 && event.keyCode == 190 )
{
event.returnValue=false
}
}
}
}
var matchFloatKeyCode = new Array(48,49,50,51,52,53,54,55,56,57,190); // '0123456789.';
function checkMoreZeroFloatOnKeyDown( text )
{
if(event.keyCode==229||(event.keyCode>95 && event.keyCode<106)){
return;
}
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
if( !isLegalKeyCode( event.keyCode, matchFloatKeyCode ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( event.keyCode == 189 && len > 0 )
event.returnValue=false
else if( str == '0' && event.keyCode != 190 )
{
event.returnValue=false
}
else
{
index = str.indexOf(".");
if( index != -1 && event.keyCode == 190 )
{
event.returnValue=false
}
}
}
}
var matchNumberKeyCode = new Array(48,49,50,51,52,53,54,55,56,57,189); // '0123456789-';
function checkNumberOnKeyDown( text, n )
{
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
if( !isLegalKeyCode( event.keyCode, matchNumberKeyCode ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( len == 1 )
{
if( str == "0" )
text.value = "";
else if( str == '-' && event.keyCode == 48 )
event.returnValue=false
}
else if( event.keyCode == 189 )
{
event.returnValue=false
}
}
}
var matchNumberKeyCode = new Array(48,49,50,51,52,53,54,55,56,57); // '0123456789';
function checkMoreZeroOnKeyDown( text, n )
{
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
if( !isLegalKeyCode( event.keyCode, matchNumberKeyCode ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( len == 0 )
{
if( event.keyCode == 48 )
event.returnValue=false
}
}
}
function checkMoreAndZeroOnKeyDown( text, n )
{
if( event.keyCode == 8 || event.keyCode == 9
|| event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40
|| event.keyCode == 46 || event.keyCode == 27 )
return;
if( !isLegalKeyCode( event.keyCode, matchNumberKeyCode ) )
event.returnValue=false
else
{
str = text.value;
len = str.length;
if( len == 0 )
if( event.keyCode == 48 )
event.returnValue=false
else if( len == 1 )
if( str == "0" ) text.value = "";
}
}
function checkDatebelow18( strDate ) {
if( strlength(strDate) == 0 ) {
return true;
}
try {
var strYear = strDate.substring(0,4)-(-18);
var strMonth = strDate.substring(5,7)-1;
var strday = strDate.substring(8,10);
var dateObj = new Date( strYear, strMonth, strday );
var nowDate = new Date();
var strStart = dateObj.getFullYear()+'-'+(dateObj.getMonth()-(-1)<10?'0'+(dateObj.getMonth()-(-1)):(dateObj.getMonth()-(-1)))+'-'+(dateObj.getDate()<10?'0'+dateObj.getDate():dateObj.getDate());
var strEnd = nowDate.getFullYear()+'-'+(nowDate.getMonth()-(-1)<10?'0'+(nowDate.getMonth()-(-1)):(nowDate.getMonth()-(-1)))+'-'+(nowDate.getDate()<10?'0'+nowDate.getDate():nowDate.getDate());
if( !checkDateEarlier( strStart, strEnd ) ) {
return false;
}
} catch( e ) {
return false;
}
return true;
}
function isLegalString(inputStr,matchStr)
{
for (i=0; i < inputStr.length; i++)
{
indexChar= inputStr.substring (i, i+1);
if (matchStr.indexOf (indexChar, 0)==-1)
return (false);
}
return true;
}
function isLegalChar(inputChar,matchStr)
{
if (matchStr.indexOf (inputChar, 0)==-1)
return false;
else
return true;
}
function isLegalKeyCode(keyCode,matchKeyCode)
{
for( i=0; i<matchKeyCode.length; i++ )
if (matchKeyCode[i] == keyCode )
return true;
return false;
}
function idCard15To18(strTemp)
{
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
if(strTemp.length==15)
{
strTemp = strTemp.substr(0,6) + '19' + strTemp.substr(6,strTemp.length-6);
for(i = 0; i < strTemp.length; i ++)
{
nTemp += strTemp.substr(i, 1) * arrInt[i];
}
strTemp += arrCh[nTemp % 11];
}
return strTemp;
}
function checkFieldMaxLength( chkForm ) //验证整个Form的元素集合中各个元素的maxLength属性的中文长度问题
{
len = chkForm.elements.length
for( i=0; i<len; i++ )
{
var field = chkForm.elements[i];
if ( field.maxLength != 'undefined' && field.maxLength > 0 && field.maxLength < 2147483647 && field.disabled == false && field.style.display == '')
{
//alert( field.name +":"+ field.maxLength );
if( strlength(field.value) > field.maxLength )
{
try{
field.focus();
field.select();
alert( "焦点输入框字段不能超过'"+field.maxLength+"'个字符" );
return false;
}catch(ex){}
}
}
}
return true;
}
//驾驶证号码验证
function checkDrivinglicenceNo(licenceNo){
var Errors=new Array(
"验证通过!",
"驾驶证号码位数不对!",
"驾驶证号码出生日期超出范围或含有非法字符!",
"驾驶证号码校验错误!",
"驾驶证地区非法!"
);
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var licenceNo,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = licenceNo.split("");
//地区检验
if(area[parseInt(licenceNo.substr(0,2))]==null)
return Errors[4];
//身份号码位数及格式检验
switch(licenceNo.length){
case 15:
if ( (parseInt(licenceNo.substr(6,2))+1900) % 4 == 0 || ((parseInt(licenceNo.substr(6,2))+1900) % 100 == 0 && (parseInt(licenceNo.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(ereg.test(licenceNo))
return Errors[0];
else
return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(licenceNo.substr(6,4)) % 4 == 0 || (parseInt(licenceNo.substr(6,4)) % 100 == 0 && parseInt(licenceNo.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(ereg.test(licenceNo)){//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判断校验位
if(M == idcard_array[17])
return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else
return Errors[2];
break;
default:
return Errors[1];
break;
}
}
function getDefauleValue( fieldName, str)
{
fieldRef = document.getElementById(fieldName);
if( fieldRef != null )
{
if( fieldRef.value.trim().length > 0 )
{
return fieldRef.value.trim();
}
}
return str;
}
function setFieldValue( fieldName, str )
{
fieldRef = document.getElementById(fieldName);
if( fieldRef != null )
{
fieldRef.value = str;
}
}
//负浮点数
//校验是否全由数字组成
function isNegativeDouble(str)
{
var patrn=/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
if(!patrn.test(str)) return false
return true
}
//身份证验证
function checkIdcard(idcard){
var Errors=new Array(
"验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
//if(area[parseInt(idcard.substr(0,2))]==null)
//return Errors[4];
//身份号码位数及格式检验
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(!ereg.test(idcard))
return Errors[2];
else
return Errors[0];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(!ereg.test(idcard)){//测试出生日期的合法性
//计算校验位
//S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
//+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
//+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
//+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
//+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
//+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
//+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
//+ parseInt(idcard_array[7]) * 1
//+ parseInt(idcard_array[8]) * 6
//+ parseInt(idcard_array[9]) * 3 ;
//Y = S % 11;
//M = "F";
//JYM = "10X98765432";
//M = JYM.substr(Y,1);//判断校验位
//if(M == idcard_array[17])
// return Errors[0]; //检测ID的校验位
//else
// return Errors[3];
return Errors[2];
}
else
return Errors[0];
break;
default:
return Errors[1];
break;
}
}
function showDialog600500( url )
{
showModalDialog(url,window,"status:false;dialogWidth:600px;dialogHeight:500px;status:no");
}
function showDialog700600( url )
{
showModalDialog(url,window,"status:false;dialogWidth:800px;dialogHeight:600px;status:no");
}
function showDialog900600( url )
{
showModalDialog(url,window,"status:false;dialogWidth:900px;dialogHeight:600px;status:no");
}
function showDialog600300( url )
{
showModalDialog(url,window,"status:false;dialogWidth:610px;dialogHeight:350px;status:no");
}
function CheckYearDate(str){
var rc=true;
if(str.length != 4){
rc=false;
return rc;
}
if (str+"" == "undefined" || str == null){
rc=false;
} else if(str.length==0){
rc=false;
} else {
for(i=0;i<str.length;i++){
if(str.charAt(0)<'1' || str.charAt(i)>'9'){
rc=false;
break;
}
if(i>0){
if(str.charAt(i)<'0' || str.charAt(i)>'9'){
rc=false;
break;
}
}
}
}
return rc;
}
function setTitle(strtitle)
{
if( parent )
{
parent.document.title = strtitle;
}
}
function formatDate( oText )
{
var oo=oText.value;
var var1="";
if( oo.length == 0 )
{
return;
}
if( oo.length == 6 )
{
var year=oo.substring(0,4);
var month=oo.substring(4,6);
var1=year+"-"+month;
oText.value=var1;
}
else if(oo.length==7)
{
if(oo.substring(4,5)!="-")
{
alert("输入格式为 YYYYMM 或 YYYY-MM");
oText.focus();
return;
}
}
else if(oo.length==8)
{
var year=oo.substring(0,4);
var month=oo.substring(4,6);
var dd=oo.substring(6,8);
var1=year+"-"+month+"-"+dd;
oText.value=var1;
}
else if(oo.length==10)
{
if(oo.substring(4,5)!="-" || oo.substring(7,8)!="-")
{
alert("输入格式为 YYYYMMDD 或 YYYY-MM-DD");
oText.focus();
return;
}
}
else
{
alert("输入格式不正确");
oText.focus();
return;
}
}
/**
*校验字符串是否包含中文
*返回值:
*如果包含 返回true
*如果字串不包含中文返回false
*/
function checkStrIncludeChinese(sString)
{
var sStr,i,strTemp ;
sStr = sString.split("");
var flag = false;
for (i = 0 ; i < sStr.length ; i ++)
{
strTemp = escape(sStr[i]);
if (strTemp.indexOf("%u",0) == -1)
{
flag = false ;
}
else
{
flag = true ;
break;
}
}
return flag ;
}
//判断value是否为日期格式,支持yyyy-MM-dd 和yyyy/MM/dd格式
function isDate(value){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = value.match(reg);
if(r == null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
var newStrY = d.getFullYear().toString();
var newStrM = (d.getMonth()+1).toString();
var newStrD = d.getDate().toString();
if(newStrM.length == 1)
newStrM = "0" + newStrM;
if(newStrD.length == 1)
newStrD = "0" + newStrD;
var newStr = newStrY+r[2]+newStrM+r[2]+newStrD;
return newStr == value;
}
//right left has
function appendSelectedOption2009(fromObj,toObj,hasObj){
for(var i=0; i<fromObj.options.length;i++){
var tempOpt= fromObj.options[i];
if(tempOpt.selected){
var value = tempOpt.value;
var text = tempOpt.text;
for(var j=0;j<toObj.options.length;j++){
if(value == toObj.options[j].value){
alert(toObj.options[j].text+"备选项已经添加");
return;
}
}
for(var j=0;j<hasObj.options.length;j++){
if(value == hasObj.options[j].value){
alert(hasObj.options[j].text+"备选项已经存在");
return;
}
}
var len = toObj.options.length+1;
var tempOption = document.createElement("OPTION");
toObj.options.add(tempOption,len);
tempOption.value=value;
tempOption.text=text;
}
}
}
function removeSelectedOption2009(selectObj){
for(var i = 0;i<selectObj.options.length;i++){
if(selectObj.options[i].selected){
selectObj.options[i] = null;
}
}
}
//判断浮点型数据的小数位数precision
function blurIsNotNegativeDoublePrecision( checkElement, actionElement, infoStr, precision) {
if( !isNotNegativeDouble( checkElement.value.trim(),precision ) )
{
alert( infoStr+"应为小数点后" + precision + "位的浮点数!" );
elementAction( actionElement );
checkElement.value="";
return false;
}
return true;
}
function checkFloatOnKeyPress( text )
{
var matchFloatKeyChars = '0123456789-.';
if( isSpecialKey() ) return;
inputChar = String.fromCharCode(event.keyCode);
if( !isLegalChar( inputChar, matchFloatKeyChars ) )
{
event.returnValue=false
}
else
{
str = text.value;
len = str.length;
if( inputChar == '-' && len > 0 )
event.returnValue=false
else if( (str == '0' || str == '-0') && (inputChar != '.') )
{
event.returnValue=false
}
else
{
dotIndex = str.indexOf(".");
if( dotIndex != -1 && inputChar == '.' )
{
event.returnValue=false
}
}
}
}
function checkNum(text)
{
str = text.value;
if(str != null && str != ""){
var reg=/^[0-9]{1,}(|.[0-9]{1,2})$/;
if(!reg.test(str)){
alert("输入格式不正确,只能输入数字、小数点,且小数点后只能有2位!");
text.focus();
}
}
}
function checkIsDoubleByChengs(str)
{
//如果为空,则通过校验
if(str == ""){
return true;
}
checkDouble = /^(-|\+)?\d+(\.\d{1,10})?$/;
if(checkDouble.test(str)){
return true;
}else{
return false;
}
}
function SetWinHeight(obj){
var win=obj;
if (document.getElementById){
if (win && !window.opera){
if (win.contentDocument && win.contentDocument.body.offsetHeight){
win.height = win.contentDocument.body.offsetHeight;
}else if(win.Document && win.Document.body.scrollHeight){
win.height = win.Document.body.scrollHeight;
}
}
}
}
相关推荐
在IT行业中,构建交互式网页应用时,"common.css"和"common.js"是常见的资源文件,它们分别用于定义页面的样式和实现交互...同时,理解并掌握"common.css"和"common.js"中的代码结构和逻辑,将有助于提升Web开发技能。
Vue.js 是一个流行的轻量级前端JavaScript框架,用于构建用户界面。它采用了声明式的数据绑定和组件化的设计,使得...在实际项目中,选择正确的Vue.js版本和搭配合适的工具链(如Webpack或Vite)是提升开发效率的关键。
Vue.js和Vue.min.js是两种版本的同一款前端JavaScript框架——Vue.js的实现。Vue.js由尤雨溪(Evan You)开发,旨在为构建用户界面提供简洁、易用且可扩展的工具。这两个文件在功能上是相同的,但它们在实际应用中...
总的来说,`common.js`是JavaScript项目中的一种常用模式,它帮助我们实现代码的复用和模块化,提高开发效率。理解和合理使用`common.js`,对于优化项目结构、提升代码质量具有重要意义。在实际开发中,我们应当根据...
4. **echarts.common.min.js**: ECharts 是百度开发的一个基于JavaScript的数据可视化库,支持丰富的图表类型,如折线图、柱状图、饼图等。ECharts.common.min.js 是ECharts的压缩版库文件,它经过压缩和混淆,体积...
jQuery.common就是一种常见的做法,它将常用的jQuery方法进行封装,形成一个通用的方法集合,以方便开发者在项目中复用,提高开发效率。本文将深入探讨jQuery.common的实现原理、常用功能以及如何在实际项目中应用。...
微信小程序-小商城后台(基于 Node.js、MongoDB、Redis 开发的系统...) 项目说明: 基于 Node.js、MongoDB、Redis 开发的系统 基于 Express 提供 RESTful API 基于 apidoc 提供接口文档 基于 Angular.js、Ionic、...
在本项目中,Vue.js 负责构建用户交互丰富的前端界面,提供组件化开发模式,使得代码结构清晰,易于维护。 2. **Node.js**:Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,用于构建高性能的服务器端和网络...
<script src="./js/vue%20(1).js" type="text/javascript" charset="UTF-8"> src里面的内容根据自己的下载的Vue.js的文件位置决定的,我这里只是拿我自己做的举个例子。这个地方的vue.js是因为我下载了两次这个版本...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。...在实际开发中,你可能需要学习这些杂项来提升你的 Node.js 项目质量。
项目开发规范是软件开发中的重要组成部分,它确保团队成员遵循一致的编码风格和组织结构,从而提高代码的可读性、可维护性和团队协作效率。以下是对提供的项目开发规范的详细说明: 1. **项目包结构**: - `src`: ...
在移动开发和智能端开发领域,"common文件"通常指的是包含通用代码的模块或库,这些代码可以在多个项目或页面中复用,以提高开发效率和代码一致性。在这个场景下,"公共js"指的是JavaScript文件,它们包含了可以跨...
"sea.js与jquery.mobile-1.3.2,jquery结合实现模块化开发" 这个标题表明了我们将会探讨如何利用Sea.js(一个JavaScript模块加载器)和jQuery Mobile(一个用于移动设备的前端框架)相结合,进行模块化的Web应用开发...
ECharts是一款基于JavaScript的数据可视化库,它由百度公司开发并开源。这个名为"echarts.zip"的压缩包包含了ECharts的几个核心版本,为开发者提供了丰富的图表类型和强大的交互功能,适用于网页数据展示和分析。...
Sea.js 是一个遵循 CMD(Common Module Definition)规范的 JavaScript 模块加载器,它旨在为浏览器环境提供模块化的解决方案。CMD 规范与 Node.js 中的 CommonJS 规范类似,但做了针对浏览器的优化。Sea.js 提供了...
在这个"前台web开发代码示例"中,我们可以预期`common.js` 文件包含了一些核心的JavaScript功能,这些功能可以提高开发效率,简化代码结构,并促进代码的重用。 1. **事件处理**:`common.js` 可能包含了各种事件...
Ember.js是一个强大的JavaScript框架,它的目标是提升开发效率,减少构建Web应用所需的时间。它提供了全面的结构和约定,让开发者能够更专注于编写应用程序的业务逻辑,而非基础架构。这个压缩包文件“ember.js-...
- **安装**:可以直接通过CDN链接引入,或者将压缩包中的js文件下载到本地项目中引用。 - **初始化**:在HTML中创建一个用于绘图的div元素,然后通过JavaScript调用`echarts.init`方法初始化ECharts实例。 - **...
ECharts是一款由百度开发的,基于JavaScript的数据可视化库,它提供了丰富的图表类型,精美的图表设计,以及强大的交互功能。ECharts.js.zip压缩包包含了ECharts的主要版本,这些文件是ECharts库的核心组成部分,...
Layzr.js 是一个精小的、能快速加载图片的开发包。使用它的话,除非图片出现在视线中才会加载,否则是不会自动加载图片的。 代码示例: var layzr = new Layzr({ attr: 'data-layzr', retinaAttr...