工具:utils.js var Browser = new Object(); Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined'); Browser.isIE = window.ActiveXObject ? true : false; Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1); Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1); Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1); var Utils = new Object(); Utils.htmlEncode = function(text){ return text.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>'); } Utils.trim = function( text ){ if (typeof(text) == "string") { return text.replace(/^/s*|/s*$/g, ""); } else{ return text; } } Utils.isEmpty = function( val ){ switch (typeof(val)){ case 'string': return Utils.trim(val).length == 0 ? true : false; break; case 'number': return val == 0; break; case 'object': return val == null; break; case 'array': return val.length == 0; break; default: return true; } } Utils.isNumber = function(val){ var reg = /^[/d|/.|,]+$/; return reg.test(val); } Utils.isInt = function(val){ if (val == ""){ return false; } var reg = //D+/; return !reg.test(val); } Utils.isEmail = function( email ){ var reg1 = /([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)/; return reg1.test( email ); } Utils.isTel = function ( tel ){ var reg = /^[/d|/-|/s|/_]+$/; //只允许使用数字-空格等 return reg.test( tel ); } Utils.fixEvent = function(e){ var evt = (typeof e == "undefined") ? window.event : e; return evt; } Utils.srcElement = function(e){ if (typeof e == "undefined") e = window.event; var src = document.all ? e.srcElement : e.target; return src; } Utils.isTime = function(val){ var reg = /^/d{4}-/d{2}-/d{2}/s/d{2}:/d{2}$/; return reg.test(val); } Utils.x = function(e){ //当前鼠标X坐标 return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX; } Utils.y = function(e){ //当前鼠标Y坐标 return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY; } Utils.request = function(url, item){ //取得url中指定请求参数值 var sValue=url.match(new RegExp("[/?/&]"+item+"=([^/&]*)(/&?)","i")); return sValue?sValue[1]:sValue; } Utils.$ = function(name){ return document.getElementById(name); } function rowindex(tr){ if (Browser.isIE){ return tr.rowIndex; } else{ table = tr.parentNode.parentNode; for (i = 0; i < table.rows.length; i ++ ){ if (table.rows[i] == tr){ return i; } } } } document.getCookie = function(sName){ // cookies are separated by semicolons var aCookie = document.cookie.split("; "); for (var i=0; i < aCookie.length; i++) { // a name/value pair (a crumb) is separated by an equal sign var aCrumb = aCookie[i].split("="); if (sName == aCrumb[0]) return decodeURIComponent(aCrumb[1]); } // a cookie with the requested name does not exist return null; } document.setCookie = function(sName, sValue, sExpires){ var sCookie = sName + "=" + encodeURIComponent(sValue); if (sExpires != null){ sCookie += "; expires=" + sExpires; } document.cookie = sCookie; } document.removeCookie = function(sName,sValue){ document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;"; } function getPosition(o){ var t = o.offsetTop; var l = o.offsetLeft; while(o = o.offsetParent){ t += o.offsetTop; l += o.offsetLeft; } var pos = {top:t,left:l}; return pos; } function cleanWhitespace(element){ var element = element; for (var i = 0; i < element.childNodes.length; i++) { var node = element.childNodes[i]; if (node.nodeType == 3 && !//S/.test(node.nodeValue)) element.removeChild(node); } } 验证类:validator.js /* * 表单验证类 */ var Validator = function(){ this.errMsg = new Array(); /* * * 检查用户是否输入了内容 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 */ this.required = function(controlId, msg){ var obj = Utils.$(controlId); if (typeof(obj) == "undefined" || Utils.trim(obj.value) == ""){ this.addErrorMsg(msg); } } ; /* * * 检查用户输入的是否为合法的邮件地址 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isEmail = function(controlId, msg, required){ var obj = Utils.$(controlId); obj.value = Utils.trim(obj.value); if ( ! required && obj.value == ''){ return; } if ( ! Utils.isEmail(obj.value)){ this.addErrorMsg(msg); } } /* * * 检查两个表单元素的值是否相等 * * @param : fstControl 表单元素的ID * @param : sndControl 表单元素的ID * @param : msg 错误提示信息 */ this.eqaul = function(fstControl, sndControl, msg){ var fstObj = Utils.$(fstControl); var sndObj = Utils.$(sndControl); if (fstObj != null && sndObj != null){ if (fstObj.value == '' || fstObj.value != sndObj.value){ this.addErrorMsg(msg); } } } /* * * 检查前一个表单元素是否大于后一个表单元素 * * @param : fstControl 表单元素的ID * @param : sndControl 表单元素的ID * @param : msg 错误提示信息 */ this.gt = function(fstControl, sndControl, msg){ var fstObj = Utils.$(fstControl); var sndObj = Utils.$(sndControl); if (fstObj != null && sndObj != null) { if (Utils.isNumber(fstObj.value) && Utils.isNumber(sndObj.value)) { var v1 = parseFloat(fstObj.value) + 0; var v2 = parseFloat(sndObj.value) + 0; } else { var v1 = fstObj.value; var v2 = sndObj.value; } if (v1 <= v2) this.addErrorMsg(msg); } } /* * * 检查输入的内容是否是一个数字 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isNumber = function(controlId, msg, required){ var obj = Utils.$(controlId); obj.value = Utils.trim(obj.value); if (obj.value == '' && ! required){ return; } else{ if ( ! Utils.isNumber(obj.value)){ this.addErrorMsg(msg); } } } /* * * 检查输入的内容是否是一个整数 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isInt = function(controlId, msg, required){ var obj = Utils.$(controlId); obj.value = Utils.trim(obj.value); if (obj.value == '' && ! required){ return; } else{ if ( ! Utils.isInt(obj.value)) this.addErrorMsg(msg); } } /* * * 检查输入的内容是否是为空 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isNullOption = function(controlId, msg){ var obj = Utils.$(controlId); obj.value = Utils.trim(obj.value); if (obj.value > '0' ){ return; } else{ this.addErrorMsg(msg); } } /* * * 检查输入的内容是否是"2008-11-12 12:00:00"格式 * * @param : controlId 表单元素的ID * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isTime = function(controlId, msg, required){ var obj = Utils.$(controlId); obj.value = Utils.trim(obj.value); if (obj.value == '' && ! required){ return; } else{ if ( ! Utils.isTime(obj.value)) this.addErrorMsg(msg); } } /* * * 检查前一个表单元素是否小于后一个表单元素(日期判断) * * @param : controlIdStart 表单元素的ID * @param : controlIdEnd 表单元素的ID * @param : msg 错误提示信息 */ this.islt = function(controlIdStart, controlIdEnd, msg){ var start = Utils.$(controlIdStart); var end = Utils.$(controlIdEnd); start.value = Utils.trim(start.value); end.value = Utils.trim(end.value); if(start.value <= end.value){ return; } else{ this.addErrorMsg(msg); } } /* * * 检查指定的checkbox是否选定 * * @param : controlId 表单元素的name * @param : msg 错误提示信息 */ this.requiredCheckbox = function(controlId, msg){ var obj = Utils.$(controlId); var; for (var i = 0; i < objects.length; i ++ ){ if (objects[i].type.toLowerCase() != "checkbox") continue; if (objects[i].checked){ checked = true; break; } } if ( ! checked) this.addErrorMsg(msg); } this.passed = function(){ if (this.errMsg.length > 0){ var msg = ""; for (i = 0; i < this.errMsg.length; i ++ ){ msg += "- " + this.errMsg[i] + "/n"; } alert(msg); return false; } else{ return true; } } /* * * 增加一个错误信息 * * @param : str */ this.addErrorMsg = function(str){ this.errMsg.push(str); } } /* * * 帮助信息的显隐函数 */ function showNotice(objId){ var obj = Utils.$(objId); if (obj){ if (obj.style.display != "block"){ obj.style.display = "block"; } else{ obj.style.display = "none"; } } } /* * * add one option of a select to another select. * */ function addItem(src, dst){ for (var x = 0; x < src.length; x ++ ){ var opt = src.options[x]; if (opt.selected && opt.value != ''){ var newOpt = opt.cloneNode(true); newOpt.className = ''; newOpt.text = newOpt.innerHTML.replace(/^/s+|/s+$| /g, ''); dst.appendChild(newOpt); } } src.selectedIndex = -1; } /* * * delete one selected option from a select. * */ function delItem(ItemList){ for (var x = ItemList.length - 1; x >= 0; x -- ){ var opt = ItemList.options[x]; if (opt.selected){ ItemList.options[x] = null; } } } /* * * join items of an select with ",". * */ function joinItem(ItemList){ var OptionList = new Array(); for (var i = 0; i < ItemList.length; i ++ ){ OptionList[OptionList.length] = ItemList.options[i].text + "|" + ItemList.options[i].value; } return OptionList.join(","); }