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;
}
}
}
}
相关推荐
Layzr.js 是一个精小的、能快速加载图片的开发包。使用它的话,除非图片出现在视线中才会加载,否则是不会自动加载图片的。 代码示例: var layzr = new Layzr({ attr: 'data-layzr', retinaAttr...
该项目利用了基于springboot + vue + mysql的开发模式框架实现的课设系统,包括了项目的源码资源、sql文件、相关指引文档等等。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理...
在很多项目开发中,经常会遇见上传图片的场景,它可能是用户照片信息,也可能是商品图片等。然而在网页布局中,为了更好的用户体验,它们往往都需要一些宽度和高度的限制。对于不合适的图片,常常需要为用户提供一种...
基于vue开发的宠物商店购物系统源码+项目说明(课程大作业).zip 从零构建vue + vue-router + vuex,实现基本的系统功能 【技术栈】 vue + element + axios + node.js + mysql 【项目结构】 |——— public |——— ...
domTemplate.js 模板引擎是通过在标签中添加自定义属性,实现动态模板功能,当没有引入domTemplate脚本, 则自定义标签属性不会被浏览器解析,不会破坏原有静态效果,当引入domTemplate脚本,模板引擎回去解析这些...
使用Next.js开发的项目必须在配置文件中手动插入规则,以处理可能在多个项目中非常常见的文件类型。 这些插件通过消除流程中的工作量来加快项目的初始设置,从而减少了开发人员的时间。安装$ npm install --save @...
主体部分还是在爬虫上,由于针对不同网站的爬虫会有所不同,因此我将匹配的关键词放在了websites文件夹中的每个js文件中,种子页面处理放在crawler.js中,common.js用来放一些常用模块的二次封装(或者测试的时候...
1、如何开发项目 (a)了解用户需求(静态DEMO) (b)了解数据设计(表关系) 2、编码 (a)搭建开发框架 1、搭建Struts框架完成页面跳转 2、静态页面复制到工程中 WebRoot:(用户可以看) common:公共组件 css:css样式...
JavaScript基于swoole4开发的聊天系统源码+详细项目说明.zip 基于swoole4开发的聊天demo,未使用swoole协程。仅供参考学习。 *客户端* 浏览器pc端基本实现了聊天的功能,肯定存在问题,这个基础版本设计了除...
得推交友系统是得推网络开发的一款针对陌生人...安装完成 删除install.lock前端安装编译说明:前端需要在手机中观看下载安装HbuilderX创建uniApp项目复制uniapp里面的内容覆盖到项目里面配置common/common.js的网址信息
基于Java开发的OA办公审批系统源码+项目详细说明.zip 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等...
IBM Cloudant Node.js SDK版本0.0.14 IBM Cloudant Node.js SDK是与交互的客户端库。... 您应该在项目中考虑使用Cloudant Node.js SDK的原因: 受IBM Cloudant支持。 服务器兼容性: IBM Cloudant“经典”。 与Clouda
毕业设计基于Golang开发的BBS论坛系统源码+项目使用说明.zip 特性 注册/登陆模块(用户名或邮箱登陆) 设置昵称、邮箱、用户名 发表动态、文章 评论系统 动态/文章的点赞 支持浏览器 token 记住登录 支持文章...
pytrie 是一个前缀树(Trie)数据结构的Python 开发包。在 pytrie 模块中, CharTrie 和 StringTrie 类可以执行一个可变的映射接口。这个工具包具有以下特点:数据的全映射功能支持迭代和删除二级前缀树支持前缀检查...
用于 Angular 项目的 Yeoman 生成器: 支持 SASS/LESS/Stylus 遵循 入门 $ npm install -g generator-engular $ yo engular $ gulp 模块化代码组织 app ├── assets ├── common - (assigned to module0) │ ...
主要应用在金融机构中。 标签:riskiq 分享 window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "2", ...
4. 修改resources/static/js/common/ConstProperties.js中的域名 (局域网使用下,在命令行使用ipconfig查看部署的电脑的ip地址,配置为域名,如192.168.1.1。如部署到服务器,设置为服务器域名即可。如部署错误会...
Angular 适用于企业中后台项目开发,提供了一整套前端解决方案,但初始项目结构、最佳风格配置比较繁琐,所以基于Angular5 + ng-zorro0.7 搭建了一个基础项目,实现了一个项目所需要的基础功能,便于以后可以快速...
common.js 实现数据检验的独立的.js文件。 第2章(\c02) 实例描述:学习JavaScript的基本语法。 2.1.html JavaScript中this在不同位置指向的对象。 2.2.html null类型的简单应用。 2.3.html 算术...
代币可用格式版本otkit-borders scss, cssmodules.css, common.js otkit-breakpoints scss, cssmodules.css, common.js otkit-colors scss, cssmodules.css, common.js otkit-grids scss, cssmodules.css, common....