// JavaScript Document
//用法如: < input name ="SetinPiece" type ="text" id ="SetinPiece" size ="20" charset ="Number" datatype ="Number" nullable ="false" >
//初始化调用
//先提示画层
drawTipDiv();
//输出样式表
drawStyle();
//装载侦听器
addListener();
//容错处理
function killErrors() {
return true;
}
//window.onerror = killErrors;
//================以下为系统函数区=======================//
//全局变量区
var oldInputStyle;
var oldImgStyle;
var firstInput;
var endInput;
var timer;
//显示提示信息层
function showTip(handle,msg) {
//alert(handle.type);
handle.focus();
var pos = getPosition(handle);
var t = pos.top;
var l = pos.left;
document.all.checkMsgDiv.style.left=l-10+getTextLength(handle);
document.all.checkMsgDiv.style.top=t+handle.clientHeight;
document.all.checkMsgTd.innerHTML=msg;
document.all.checkMsgDiv.style.visibility = 'visible';
//隐藏被层遮挡的选择框
HideOverSels("checkMsgDiv");
timer = setTimeout("hideTip();", 2500);
return false;
}
//表单校验函数
function checkFormInput(handle) {
var controlList = handle.elements;
var controlObj;
for(var i=0;i < controlList .length;i++) {
//如果是text控件,需要进行数据校验
controlObj = controlList[i];
if(isControlVisible(controlObj)) {
if(controlObj.type =='text' || controlObj.type =='password') {
//如果不充许为空,则需要判断
if((controlObj.nullable =="false") && (controlObj.value =="")) {
hideTip();
showTip(controlObj,"此输入域不能为空!");
return false;
}
//如果有最小长度限制,则需要判断
if(controlObj.value! ='' && controlObj.minlength! =null) {
var realLength = controlObj.value.length;
var needLength = controlObj.minlength;
if(realLength<needLength) {
hideTip();
showTip(controlObj,"此输入域至少需要"+needLength+"个字符!");
return false;
}
}
//判断数据的类型,调用相关的数据校验函数
if(controlObj.datatype! =null && controlObj.value! ='') {
var typeStr = controlObj.datatype.toLowerCase();
var firstChar = typeStr.substring(0,1);
firstChar = firstChar.toUpperCase();
typeStr = firstChar+typeStr.substring(1,typeStr.length);
var tempMsg =eval("is"+typeStr+"(controlObj);");
if (tempMsg! =true)
{
hideTip();
showTip(controlObj,"此输入域"+tempMsg);
return false;
}
}
}
}
}
return true;
}
//系统调用接口
function handleKeyDown(event) {
//有按键就要关闭tip层
hideTip();
//home键与end键定位第一个与最后一个输入域上
if(event.srcElement.type! ="text" && event.srcElement.type! ="textarea" && event.keyCode ==36) {
if(firstInput) firstInput.focus();
}
if(event.srcElement.type! ="text" && event.srcElement.type! ="textarea" && event.keyCode ==35) {
if(endInput) endInput.focus();
}
//处理回车切换焦点以及按钮与图片执行功能
if(event.keyCode ==13 && event.srcElement.type! ="button" && event.srcElement.type! ="reset" && event.srcElement.type! ="" && event.srcElement.type! ="textarea" ) {
if(event.srcElement.src) {
if(event.srcElement.onclick) {
event.srcElement.fireEvent("onclick")
return;
} else {
event.keyCode =9;
return;
}
} else {
event.keyCode =9;
return;
}
}
//处理图片按钮的快捷键
if(event.altKey && event.keyCode! =18) {
var shortKey =String.fromCharCode(event.keyCode);
var quickKey = "" ;
for(var i =0;i<document.images.length;i++) {
quickKey = document.images[i].accessKey;
quickKey = quickKey.toUpperCase();
if(quickKey ==shortKey) {
if(document.images[i].onclick) {
document.images[i].fireEvent("onclick");
break;
}
}
}
//处理输入对象快捷方式
var inputList = document.body.getElementsByTagName("INPUT");
for(var i =0;i<inputList.length;i++) {
quickKey = inputList[i].accessKey;
quickKey = quickKey.toUpperCase();
if(quickKey ==shortKey) {
inputList[i].focus();
break;
}
}
return;
}
if(event.srcElement.type =='text' && event.srcElement.charset! =null) {
//alert(event.srcElement.charset);
if((event.keyCode > 48 && event.keyCode < 112 ) || (event.keyCode > 127 && event.keyCode!=144)) checkInputChar(event.srcElement,event.keyCode);
}
}
//有效性判断入口
function checkInputChar(handle,keyCode) {
hideTip();
var typeStr = handle.charset.toLowerCase();
var firstChar = typeStr.substring(0,1);
firstChar = firstChar.toUpperCase();
typeStr = firstChar+typeStr.substring(1,typeStr.length);
var tempMsg=eval("input"+typeStr+"(handle,keyCode);");
if (tempMsg!=true)
{
hideTip();
showTip(handle,tempMsg);
}
}
//关闭提示信息层
function hideTip() {
document.all.checkMsgDiv.style.visibility = 'hidden';
//显示被隐藏了的选择框
ShowOverSels("checkMsgDiv");
clearTimeout(timer);
}
//获得文本框中文本的象素单位的宽度
function getTextLength(handle)
{
var range = handle.createTextRange();
return range.boundingWidth;
//return 0;
}
//画一个隐藏的层
function drawTipDiv() {
document.write(" < div id ="checkMsgDiv" style ="position:absolute; width:218px; overflow: visible; z-index:1; visibility:hidden; left: 100px; top: 69px; height: 66px; border: 1px none #000000;" > ");
document.write(" < table width ="218" height ="65" border ="0" cellpadding ="0" cellspacing ="0" id ="checkMsgTable" > ");
document.write(" < tr > ");
document.write(" < td height ="13" valign ="top" >< img src ="REDRULE.GIF" width ="192" height ="7" ></ td > ");
document.write(" </ tr > ");
document.write(" < tr > ");
document.write(" < td height ="42" valign ="top" background ="/platform/js/t_bg.gif" > ");
document.write(" < table width ="95%" border ="0" align ="center" cellpadding ="0" cellspacing ="0" style ="font:9pt 宋体;" > ");
document.write(" < tr > ");
document.write(" < td id ="checkMsgTd" > sdafs </ td > ");
document.write(" </ tr > ");
document.write(" </ table ></ td > ");
document.write(" </ tr > ");
document.write(" < tr > ");
document.write(" < td height ="10" valign ="bottom" >< img src ="REDRULE.GIF" width ="192" height ="7" ></ td > ");
document.write(" </ tr > ");
document.write(" </ table > ");
document.write(" </ div > ");
}
//输出样式表
function drawStyle() {
document.write(" < style type ="text/css" > ");
document.write("input.activeInput { border-top-color : #0000CC ; border-top-width : 1px ; border-bottom-color : #0000CC ; border-bottom-width : 1px ; border-left-color : #0000CC ; border-left-width : 1px ; border-right-color : #0000CC ; border-right-width : 1px ; } ");
document.write("img.activeImg { border-top-color : #3366FF ; border-top-width : 1px ; border-bottom-color : #3366FF ; border-bottom-width : 1px ; border-left-color : #3366FF ; border-left-width : 1px ; border-right-color : #3366FF ; border-right-width : 1px ; } ");
document.write(" </ style > ");
}
//控件onFocus事件的侦听器
function onInputFocus() {
if(window.event.srcElement.src) {
if(window.event.srcElement.onclick) {
oldImgStyle = window.event.srcElement.style;
window.event.srcElement.className="activeImg";
}
} else {
oldInputStyle = window.event.srcElement.style;
window.event.srcElement.className="activeInput";
if(window.event.srcElement.select) window.event.srcElement.select();
}
}
//控件onblur事件的侦听器
function onInputBlur() {
if(window.event.srcElement.src) {
window.event.srcElement.className = "";
} else {
window.event.srcElement.className = "";
}
}
//控件onkeypress事件的侦听器
function onInputKeydown () {
handleKeyDown(window.event);
}
//控件onPaste事件的侦听器
function onInputPaste () {
return false;
}
//表单onSubmit事件的侦听器
function onFormSubmit () {
return checkFormInput(window.event.srcElement);
}
//控件onMouseover事件的侦听器
function onInputMouseover () {
onInputFocus();
}
//控年onMouseout事件的侦听器
function onInputMouseout () {
onInputBlur();
}
//为每个可输入控件装载侦听器
function addListener() {
var inputList = document.body.getElementsByTagName("INPUT");
if(inputList[0]) firstInput = inputList[0];
for(var i=0;i < inputList .length;i++) {
inputList[i].attachEvent ('onkeydown', onInputKeydown);
inputList[i].attachEvent ('onfocus', onInputFocus);
inputList[i].attachEvent ('onblur', onInputBlur);
//inputList[i].attachEvent ('onpaste', onInputPaste);
inputList[i].attachEvent ('onmouseover', onInputMouseover);
inputList[i].attachEvent ('onmouseout', onInputMouseout);
}
if(inputList[i-1]) endInput = inputList[i-1];
var inputList = document.body.getElementsByTagName("IMG");
for(var i =0;i<inputList.length;i++) {
inputList[i].attachEvent ('onkeydown', onInputKeydown);
inputList[i].attachEvent ('onfocus', onInputFocus);
inputList[i].attachEvent ('onblur', onInputBlur);
}
document.body.attachEvent('onkeydown', onInputKeydown);
var formList = document.body.getElementsByTagName("FORM");
for(var i =0;i<formList.length;i++) {
formList[i].attachEvent ('onsubmit',onFormSubmit);
}
}
// 隐藏被ID为objID的对象(层)遮挡的所有select
function HideOverSels(objID)
{
var sels = document.getElementsByTagName('select');
for (var i = 0; i < sels.length; i++)
if (Obj1OverObj2(document.all[objID], sels[i]))
sels[i].style.visibility = 'hidden';
}
// 显示被ID为objID的对象(层)遮挡的所有select
function ShowOverSels(objID)
{
var sels = document.getElementsByTagName('select');
for (var i = 0; i < sels.length; i++)
if (Obj1OverObj2(document.all[objID], sels[i]))
sels[i].style.visibility = 'visible';
}
//判断obj1是否遮挡了obj2
function Obj1OverObj2(obj1, obj2)
{
var pos1 = getPosition(obj1)
var pos2 = getPosition(obj2)
var result = true;
var obj1Left = pos1.left - window.document.body.scrollLeft;
var obj1Top = pos1.top - window.document.body.scrollTop;
var obj1Right = obj1Left + obj1.offsetWidth;
var obj1Bottom = obj1Top + obj1.offsetHeight;
var obj2Left = pos2.left - window.document.body.scrollLeft;
var obj2Top = pos2.top - window.document.body.scrollTop;
var obj2Right = obj2Left + obj2.offsetWidth;
var obj2Bottom = obj2Top + obj2.offsetHeight;
if (obj1Right < = obj2Left || obj1Bottom < = obj2Top ||
obj1Left > = obj2Right || obj1Top >= obj2Bottom)
result = false;
return result;
}
// 获取对象的坐标
function getPosition(Obj)
{
var sumTop=0;
var sumLeft=0;
while(Obj!=window.document.body) {
sumTop+=Obj.offsetTop;
if(Obj.tagName.toLowerCase()=='div') {
sumTop-=Obj.scrollTop;
}
sumLeft+=Obj.offsetLeft;
Obj=Obj.offsetParent;
}
return {left:sumLeft,top:sumTop}
}
//判断控件的可见性
function isControlVisible(handle) {
var retValue = true;
while(handle.tagName.toLowerCase()!='form' && handle.style.display.toLowerCase()!='none') {
handle = handle.parentElement;
}
if(handle.style.display=='none') retValue = false;
return retValue;
}
//================以上为系统函数区=======================//
//以下为输入过程中输入内容即时验证函数
//必需输入数字或小数点.
function inputNumberchar(handle,keyCode) {
if(!( (keyCode>=48& &keyCode < =57 )||(keyCode > =96& &keyCode < =105 ) || (keyCode == 190) )) {
window.event.returnValue =false;
return "必须输入数字或小数点!<br > 即如下字符:1234567890.";
} else return true;
}
//必须输入是数字
function inputNumber(handle,keyCode) {
if(!((keyCode>=48& &keyCode < =57 )||(keyCode > =96& &keyCode < =105 ))) {
window.event.returnValue =false;
return "必须输入数字!即如下字符:<br > 1234567890";
} else return true;
}
//必须输入字母
function inputLetter(handle,keyCode) {
if(!((keyCode>=97& &keyCode < =122 )||(keyCode > =65& &keyCode < =90 ))) {
window.event.returnValue =false;
return "必须输入大小写字母!即如下字符:<br > abcdefghijklmnopqrstuvwxyz < br > ABCDEFGHIJKLMNOPQRSTUVWXYZ";
} else return true;
}
//必须输入所有可见字符
function inputVisible(handle,keyCode) {
var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.@> < ,- []{}?/+ =|/'":;~!#$%()`";
var keyValue =String.fromCharCode(keyCode);
if(keyCode ==190) keyValue = "." ;
if(keyCode ==189) keyValue = "-" ;
if(keyCode ==188) keyValue = "<" ;
if(keyCode ==219) keyValue = "[" ;
if(keyCode ==221) keyValue = "]" ;
if(keyCode ==191) keyValue = "?" ;
if(keyCode ==187) keyValue = "+" ;
if(keyCode ==220) keyValue = "|" ;
if(keyCode ==222) keyValue = "'" ;
if(keyCode ==186) keyValue = ";" ;
if(keyCode ==192) keyValue = "~" ;
if(pattern.indexOf(keyValue)! =-1) {
window.event.returnValue =true;
return true;
}else{
window.event.returnValue =false;
return "必须输入可见字符!即如下字符:<br > ABCDEFGHIJKLMNOPQRSTUVWXYZ < br > abcdefghijklmnopqrstuvwxyz < br > 0123456789.@> < ,- []{}?/+ =|/'":<br > ;~!#$%()`";
}
}
//必须输入字母与数字
function inputNormal(handle,keyCode) {
var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var keyValue=String.fromCharCode(keyCode);
if(pattern.indexOf(keyValue)!=-1) {
window.event.returnValue=true;
return true;
}else{
window.event.returnValue=false;
return "必须输入可见字符!即如下字符: < br > ABCDEFGHIJKLMNOPQRSTUVWXYZ < br > abcdefghijklmnopqrstuvwxyz < br > 0123456789";
}
}
//================以下为校验函数区=======================//
//函数名说明:is+TypeName,TypeName首字母大写
//参数handle为当前控件句柄
//参数keyCode为当前按钮的值
//返回说明:通过返回"",不通过返回不通过的原因描述
/*格式支持例表
格式字符 格式描述 格式说明
Number 数字型
Userid 用户ID
Username 用户名称
Enterprisename 企业单位名称
Loginname 登录名称
Cardnumber 证件号码
Address 地址
Phone 电话号码
Mobile 手机号码
Postcode 邮政编码
Email 电子邮件
Namesimplicity 姓名简拼
Password 密码
Namestr 名称字符串
DescStr 描述字符串
Pageurl 页面URL
Dirctory 磁盘路径
*/
//判断是否是数字
function isNumber(handle){
var pattern = /^(d){1,14}$/;
if (!pattern.exec(handle.value)) return "必须输入数字!";
return true;
}
//判断是否是用户账号
function isUserid(handle){
var pattern = /^(d|w){3,14}$/;
if (!pattern.exec(handle.value)) return "必须输入数字 < br > 且长度需大于等于3位 < br > 小于等于14位!";
return true;
}
//判断是否用户名称可以是字母也可以是中文
function isUsername(handle){
var pattern = /^[a-zA-Z一-龥]{2,50}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于50位!"
return true;
}
//判断是否是企业名称:可以是字母 数字 中文 - _
function isEnterprisename(handle){
var pattern = /^[a-zA-Z0-9-_一-龥]{2,200}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于200位!";
return true;
}
//判断是否是登录名称
function isLoginname(handle){
var pattern = /^([a-z]|[A-Z]|[0-9]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//判断是否是证件号码
function isCardnumber(handle){
var pattern;
pattern = /^(d){5,18}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需大于等于5位 < br > 小于等于18位!";
return true;
}
//地址
function isAddress(handle){
var pattern = /^[a-zA-Z0-9一-龥]{2,200}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于200位!";
return true;
}
//联系电话
function isPhone(handle){
var pattern = /^(d){6,30}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需大于等于6位 < br > 小于等于30位!";
return true;
}
//手机
function isMobile(handle){
var pattern = /^[1][3](d){9}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且首两位是13长度是11位!";
return true;
}
//邮编
function isPostcode(handle){
var pattern = /^(d){6}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需是6位!";
return true;
}
//email
function isEmail(handle){
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
if (!pattern.exec(handle.value)) return "必须符合电子邮件地址格式";
return true;
}
//简拼
function isNamesimplicity(handle){
var pattern = /^([a-zA-Z]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//密码
function isPassword(handle){
var pattern = /^([a-zA-Z]|[0-9]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//判断是否是名称:可以是字母 数字 中文 - _
function isNamestr(handle){
var pattern = /^[a-zA-Z0-9-_一-龥]{1,40}$/;
if (!pattern.exec(handle.value)) return "必须是中文,字母,或者数字,_- < br > 且长度需大于等于1位 < br > 小于等于40位!";
return true;
}
//判断是否是描述信息:可以是字母 数字 中文 - _ , .
function isDescstr(handle){
var pattern = /^[a-zA-Z0-9-_,.一-龥]{1,50}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于50位!";
return true;
}
//
function isNumberchar(handle){
var pattern = /^[0-9.]{1,50}$/;
if(!pattern.exec(handle.value)) return "必须是数字或者小数点!";
return true ;
}
//页面URL
function isPageurl(handle){
var pattern = /^[a-zA-Z0-9-_,./一-龥]{1,80}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于80位!";
return true;
}
//目录路径
function isDirctoryurl(handle){
var pattern = /^[a-zA-Z0-9-_,./u4E00-龥]{1,300}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于300位!";
return true;
}
//================以上为校验函数区=======================//
//用法如: < input name ="SetinPiece" type ="text" id ="SetinPiece" size ="20" charset ="Number" datatype ="Number" nullable ="false" >
//初始化调用
//先提示画层
drawTipDiv();
//输出样式表
drawStyle();
//装载侦听器
addListener();
//容错处理
function killErrors() {
return true;
}
//window.onerror = killErrors;
//================以下为系统函数区=======================//
//全局变量区
var oldInputStyle;
var oldImgStyle;
var firstInput;
var endInput;
var timer;
//显示提示信息层
function showTip(handle,msg) {
//alert(handle.type);
handle.focus();
var pos = getPosition(handle);
var t = pos.top;
var l = pos.left;
document.all.checkMsgDiv.style.left=l-10+getTextLength(handle);
document.all.checkMsgDiv.style.top=t+handle.clientHeight;
document.all.checkMsgTd.innerHTML=msg;
document.all.checkMsgDiv.style.visibility = 'visible';
//隐藏被层遮挡的选择框
HideOverSels("checkMsgDiv");
timer = setTimeout("hideTip();", 2500);
return false;
}
//表单校验函数
function checkFormInput(handle) {
var controlList = handle.elements;
var controlObj;
for(var i=0;i < controlList .length;i++) {
//如果是text控件,需要进行数据校验
controlObj = controlList[i];
if(isControlVisible(controlObj)) {
if(controlObj.type =='text' || controlObj.type =='password') {
//如果不充许为空,则需要判断
if((controlObj.nullable =="false") && (controlObj.value =="")) {
hideTip();
showTip(controlObj,"此输入域不能为空!");
return false;
}
//如果有最小长度限制,则需要判断
if(controlObj.value! ='' && controlObj.minlength! =null) {
var realLength = controlObj.value.length;
var needLength = controlObj.minlength;
if(realLength<needLength) {
hideTip();
showTip(controlObj,"此输入域至少需要"+needLength+"个字符!");
return false;
}
}
//判断数据的类型,调用相关的数据校验函数
if(controlObj.datatype! =null && controlObj.value! ='') {
var typeStr = controlObj.datatype.toLowerCase();
var firstChar = typeStr.substring(0,1);
firstChar = firstChar.toUpperCase();
typeStr = firstChar+typeStr.substring(1,typeStr.length);
var tempMsg =eval("is"+typeStr+"(controlObj);");
if (tempMsg! =true)
{
hideTip();
showTip(controlObj,"此输入域"+tempMsg);
return false;
}
}
}
}
}
return true;
}
//系统调用接口
function handleKeyDown(event) {
//有按键就要关闭tip层
hideTip();
//home键与end键定位第一个与最后一个输入域上
if(event.srcElement.type! ="text" && event.srcElement.type! ="textarea" && event.keyCode ==36) {
if(firstInput) firstInput.focus();
}
if(event.srcElement.type! ="text" && event.srcElement.type! ="textarea" && event.keyCode ==35) {
if(endInput) endInput.focus();
}
//处理回车切换焦点以及按钮与图片执行功能
if(event.keyCode ==13 && event.srcElement.type! ="button" && event.srcElement.type! ="reset" && event.srcElement.type! ="" && event.srcElement.type! ="textarea" ) {
if(event.srcElement.src) {
if(event.srcElement.onclick) {
event.srcElement.fireEvent("onclick")
return;
} else {
event.keyCode =9;
return;
}
} else {
event.keyCode =9;
return;
}
}
//处理图片按钮的快捷键
if(event.altKey && event.keyCode! =18) {
var shortKey =String.fromCharCode(event.keyCode);
var quickKey = "" ;
for(var i =0;i<document.images.length;i++) {
quickKey = document.images[i].accessKey;
quickKey = quickKey.toUpperCase();
if(quickKey ==shortKey) {
if(document.images[i].onclick) {
document.images[i].fireEvent("onclick");
break;
}
}
}
//处理输入对象快捷方式
var inputList = document.body.getElementsByTagName("INPUT");
for(var i =0;i<inputList.length;i++) {
quickKey = inputList[i].accessKey;
quickKey = quickKey.toUpperCase();
if(quickKey ==shortKey) {
inputList[i].focus();
break;
}
}
return;
}
if(event.srcElement.type =='text' && event.srcElement.charset! =null) {
//alert(event.srcElement.charset);
if((event.keyCode > 48 && event.keyCode < 112 ) || (event.keyCode > 127 && event.keyCode!=144)) checkInputChar(event.srcElement,event.keyCode);
}
}
//有效性判断入口
function checkInputChar(handle,keyCode) {
hideTip();
var typeStr = handle.charset.toLowerCase();
var firstChar = typeStr.substring(0,1);
firstChar = firstChar.toUpperCase();
typeStr = firstChar+typeStr.substring(1,typeStr.length);
var tempMsg=eval("input"+typeStr+"(handle,keyCode);");
if (tempMsg!=true)
{
hideTip();
showTip(handle,tempMsg);
}
}
//关闭提示信息层
function hideTip() {
document.all.checkMsgDiv.style.visibility = 'hidden';
//显示被隐藏了的选择框
ShowOverSels("checkMsgDiv");
clearTimeout(timer);
}
//获得文本框中文本的象素单位的宽度
function getTextLength(handle)
{
var range = handle.createTextRange();
return range.boundingWidth;
//return 0;
}
//画一个隐藏的层
function drawTipDiv() {
document.write(" < div id ="checkMsgDiv" style ="position:absolute; width:218px; overflow: visible; z-index:1; visibility:hidden; left: 100px; top: 69px; height: 66px; border: 1px none #000000;" > ");
document.write(" < table width ="218" height ="65" border ="0" cellpadding ="0" cellspacing ="0" id ="checkMsgTable" > ");
document.write(" < tr > ");
document.write(" < td height ="13" valign ="top" >< img src ="REDRULE.GIF" width ="192" height ="7" ></ td > ");
document.write(" </ tr > ");
document.write(" < tr > ");
document.write(" < td height ="42" valign ="top" background ="/platform/js/t_bg.gif" > ");
document.write(" < table width ="95%" border ="0" align ="center" cellpadding ="0" cellspacing ="0" style ="font:9pt 宋体;" > ");
document.write(" < tr > ");
document.write(" < td id ="checkMsgTd" > sdafs </ td > ");
document.write(" </ tr > ");
document.write(" </ table ></ td > ");
document.write(" </ tr > ");
document.write(" < tr > ");
document.write(" < td height ="10" valign ="bottom" >< img src ="REDRULE.GIF" width ="192" height ="7" ></ td > ");
document.write(" </ tr > ");
document.write(" </ table > ");
document.write(" </ div > ");
}
//输出样式表
function drawStyle() {
document.write(" < style type ="text/css" > ");
document.write("input.activeInput { border-top-color : #0000CC ; border-top-width : 1px ; border-bottom-color : #0000CC ; border-bottom-width : 1px ; border-left-color : #0000CC ; border-left-width : 1px ; border-right-color : #0000CC ; border-right-width : 1px ; } ");
document.write("img.activeImg { border-top-color : #3366FF ; border-top-width : 1px ; border-bottom-color : #3366FF ; border-bottom-width : 1px ; border-left-color : #3366FF ; border-left-width : 1px ; border-right-color : #3366FF ; border-right-width : 1px ; } ");
document.write(" </ style > ");
}
//控件onFocus事件的侦听器
function onInputFocus() {
if(window.event.srcElement.src) {
if(window.event.srcElement.onclick) {
oldImgStyle = window.event.srcElement.style;
window.event.srcElement.className="activeImg";
}
} else {
oldInputStyle = window.event.srcElement.style;
window.event.srcElement.className="activeInput";
if(window.event.srcElement.select) window.event.srcElement.select();
}
}
//控件onblur事件的侦听器
function onInputBlur() {
if(window.event.srcElement.src) {
window.event.srcElement.className = "";
} else {
window.event.srcElement.className = "";
}
}
//控件onkeypress事件的侦听器
function onInputKeydown () {
handleKeyDown(window.event);
}
//控件onPaste事件的侦听器
function onInputPaste () {
return false;
}
//表单onSubmit事件的侦听器
function onFormSubmit () {
return checkFormInput(window.event.srcElement);
}
//控件onMouseover事件的侦听器
function onInputMouseover () {
onInputFocus();
}
//控年onMouseout事件的侦听器
function onInputMouseout () {
onInputBlur();
}
//为每个可输入控件装载侦听器
function addListener() {
var inputList = document.body.getElementsByTagName("INPUT");
if(inputList[0]) firstInput = inputList[0];
for(var i=0;i < inputList .length;i++) {
inputList[i].attachEvent ('onkeydown', onInputKeydown);
inputList[i].attachEvent ('onfocus', onInputFocus);
inputList[i].attachEvent ('onblur', onInputBlur);
//inputList[i].attachEvent ('onpaste', onInputPaste);
inputList[i].attachEvent ('onmouseover', onInputMouseover);
inputList[i].attachEvent ('onmouseout', onInputMouseout);
}
if(inputList[i-1]) endInput = inputList[i-1];
var inputList = document.body.getElementsByTagName("IMG");
for(var i =0;i<inputList.length;i++) {
inputList[i].attachEvent ('onkeydown', onInputKeydown);
inputList[i].attachEvent ('onfocus', onInputFocus);
inputList[i].attachEvent ('onblur', onInputBlur);
}
document.body.attachEvent('onkeydown', onInputKeydown);
var formList = document.body.getElementsByTagName("FORM");
for(var i =0;i<formList.length;i++) {
formList[i].attachEvent ('onsubmit',onFormSubmit);
}
}
// 隐藏被ID为objID的对象(层)遮挡的所有select
function HideOverSels(objID)
{
var sels = document.getElementsByTagName('select');
for (var i = 0; i < sels.length; i++)
if (Obj1OverObj2(document.all[objID], sels[i]))
sels[i].style.visibility = 'hidden';
}
// 显示被ID为objID的对象(层)遮挡的所有select
function ShowOverSels(objID)
{
var sels = document.getElementsByTagName('select');
for (var i = 0; i < sels.length; i++)
if (Obj1OverObj2(document.all[objID], sels[i]))
sels[i].style.visibility = 'visible';
}
//判断obj1是否遮挡了obj2
function Obj1OverObj2(obj1, obj2)
{
var pos1 = getPosition(obj1)
var pos2 = getPosition(obj2)
var result = true;
var obj1Left = pos1.left - window.document.body.scrollLeft;
var obj1Top = pos1.top - window.document.body.scrollTop;
var obj1Right = obj1Left + obj1.offsetWidth;
var obj1Bottom = obj1Top + obj1.offsetHeight;
var obj2Left = pos2.left - window.document.body.scrollLeft;
var obj2Top = pos2.top - window.document.body.scrollTop;
var obj2Right = obj2Left + obj2.offsetWidth;
var obj2Bottom = obj2Top + obj2.offsetHeight;
if (obj1Right < = obj2Left || obj1Bottom < = obj2Top ||
obj1Left > = obj2Right || obj1Top >= obj2Bottom)
result = false;
return result;
}
// 获取对象的坐标
function getPosition(Obj)
{
var sumTop=0;
var sumLeft=0;
while(Obj!=window.document.body) {
sumTop+=Obj.offsetTop;
if(Obj.tagName.toLowerCase()=='div') {
sumTop-=Obj.scrollTop;
}
sumLeft+=Obj.offsetLeft;
Obj=Obj.offsetParent;
}
return {left:sumLeft,top:sumTop}
}
//判断控件的可见性
function isControlVisible(handle) {
var retValue = true;
while(handle.tagName.toLowerCase()!='form' && handle.style.display.toLowerCase()!='none') {
handle = handle.parentElement;
}
if(handle.style.display=='none') retValue = false;
return retValue;
}
//================以上为系统函数区=======================//
//以下为输入过程中输入内容即时验证函数
//必需输入数字或小数点.
function inputNumberchar(handle,keyCode) {
if(!( (keyCode>=48& &keyCode < =57 )||(keyCode > =96& &keyCode < =105 ) || (keyCode == 190) )) {
window.event.returnValue =false;
return "必须输入数字或小数点!<br > 即如下字符:1234567890.";
} else return true;
}
//必须输入是数字
function inputNumber(handle,keyCode) {
if(!((keyCode>=48& &keyCode < =57 )||(keyCode > =96& &keyCode < =105 ))) {
window.event.returnValue =false;
return "必须输入数字!即如下字符:<br > 1234567890";
} else return true;
}
//必须输入字母
function inputLetter(handle,keyCode) {
if(!((keyCode>=97& &keyCode < =122 )||(keyCode > =65& &keyCode < =90 ))) {
window.event.returnValue =false;
return "必须输入大小写字母!即如下字符:<br > abcdefghijklmnopqrstuvwxyz < br > ABCDEFGHIJKLMNOPQRSTUVWXYZ";
} else return true;
}
//必须输入所有可见字符
function inputVisible(handle,keyCode) {
var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.@> < ,- []{}?/+ =|/'":;~!#$%()`";
var keyValue =String.fromCharCode(keyCode);
if(keyCode ==190) keyValue = "." ;
if(keyCode ==189) keyValue = "-" ;
if(keyCode ==188) keyValue = "<" ;
if(keyCode ==219) keyValue = "[" ;
if(keyCode ==221) keyValue = "]" ;
if(keyCode ==191) keyValue = "?" ;
if(keyCode ==187) keyValue = "+" ;
if(keyCode ==220) keyValue = "|" ;
if(keyCode ==222) keyValue = "'" ;
if(keyCode ==186) keyValue = ";" ;
if(keyCode ==192) keyValue = "~" ;
if(pattern.indexOf(keyValue)! =-1) {
window.event.returnValue =true;
return true;
}else{
window.event.returnValue =false;
return "必须输入可见字符!即如下字符:<br > ABCDEFGHIJKLMNOPQRSTUVWXYZ < br > abcdefghijklmnopqrstuvwxyz < br > 0123456789.@> < ,- []{}?/+ =|/'":<br > ;~!#$%()`";
}
}
//必须输入字母与数字
function inputNormal(handle,keyCode) {
var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var keyValue=String.fromCharCode(keyCode);
if(pattern.indexOf(keyValue)!=-1) {
window.event.returnValue=true;
return true;
}else{
window.event.returnValue=false;
return "必须输入可见字符!即如下字符: < br > ABCDEFGHIJKLMNOPQRSTUVWXYZ < br > abcdefghijklmnopqrstuvwxyz < br > 0123456789";
}
}
//================以下为校验函数区=======================//
//函数名说明:is+TypeName,TypeName首字母大写
//参数handle为当前控件句柄
//参数keyCode为当前按钮的值
//返回说明:通过返回"",不通过返回不通过的原因描述
/*格式支持例表
格式字符 格式描述 格式说明
Number 数字型
Userid 用户ID
Username 用户名称
Enterprisename 企业单位名称
Loginname 登录名称
Cardnumber 证件号码
Address 地址
Phone 电话号码
Mobile 手机号码
Postcode 邮政编码
Email 电子邮件
Namesimplicity 姓名简拼
Password 密码
Namestr 名称字符串
DescStr 描述字符串
Pageurl 页面URL
Dirctory 磁盘路径
*/
//判断是否是数字
function isNumber(handle){
var pattern = /^(d){1,14}$/;
if (!pattern.exec(handle.value)) return "必须输入数字!";
return true;
}
//判断是否是用户账号
function isUserid(handle){
var pattern = /^(d|w){3,14}$/;
if (!pattern.exec(handle.value)) return "必须输入数字 < br > 且长度需大于等于3位 < br > 小于等于14位!";
return true;
}
//判断是否用户名称可以是字母也可以是中文
function isUsername(handle){
var pattern = /^[a-zA-Z一-龥]{2,50}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于50位!"
return true;
}
//判断是否是企业名称:可以是字母 数字 中文 - _
function isEnterprisename(handle){
var pattern = /^[a-zA-Z0-9-_一-龥]{2,200}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于200位!";
return true;
}
//判断是否是登录名称
function isLoginname(handle){
var pattern = /^([a-z]|[A-Z]|[0-9]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//判断是否是证件号码
function isCardnumber(handle){
var pattern;
pattern = /^(d){5,18}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需大于等于5位 < br > 小于等于18位!";
return true;
}
//地址
function isAddress(handle){
var pattern = /^[a-zA-Z0-9一-龥]{2,200}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于200位!";
return true;
}
//联系电话
function isPhone(handle){
var pattern = /^(d){6,30}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需大于等于6位 < br > 小于等于30位!";
return true;
}
//手机
function isMobile(handle){
var pattern = /^[1][3](d){9}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且首两位是13长度是11位!";
return true;
}
//邮编
function isPostcode(handle){
var pattern = /^(d){6}$/;
if (!pattern.exec(handle.value)) return "必须是数字 < br > 且长度需是6位!";
return true;
}
function isEmail(handle){
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
if (!pattern.exec(handle.value)) return "必须符合电子邮件地址格式";
return true;
}
//简拼
function isNamesimplicity(handle){
var pattern = /^([a-zA-Z]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//密码
function isPassword(handle){
var pattern = /^([a-zA-Z]|[0-9]){2,25}$/;
if (!pattern.exec(handle.value)) return "必须是字母或者数字 < br > 且长度需大于等于2位 < br > 小于等于25位!";
return true;
}
//判断是否是名称:可以是字母 数字 中文 - _
function isNamestr(handle){
var pattern = /^[a-zA-Z0-9-_一-龥]{1,40}$/;
if (!pattern.exec(handle.value)) return "必须是中文,字母,或者数字,_- < br > 且长度需大于等于1位 < br > 小于等于40位!";
return true;
}
//判断是否是描述信息:可以是字母 数字 中文 - _ , .
function isDescstr(handle){
var pattern = /^[a-zA-Z0-9-_,.一-龥]{1,50}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于50位!";
return true;
}
//
function isNumberchar(handle){
var pattern = /^[0-9.]{1,50}$/;
if(!pattern.exec(handle.value)) return "必须是数字或者小数点!";
return true ;
}
//页面URL
function isPageurl(handle){
var pattern = /^[a-zA-Z0-9-_,./一-龥]{1,80}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于80位!";
return true;
}
//目录路径
function isDirctoryurl(handle){
var pattern = /^[a-zA-Z0-9-_,./u4E00-龥]{1,300}$/;
if (!pattern.exec(handle.value)) return "必须是中文字母或者数字 < br > 且长度需大于等于1位 < br > 小于等于300位!";
return true;
}
//================以上为校验函数区=======================//