/* * * 表单验证类 * * @author : weber liu * @version : v1.1 */ var validator = function(name) { this.formname = name; this.errmsg = new array(); /* * * 检查用户是否输入了内容 * * @param : controlid 表单元素的id * @param : msg 错误提示信息 */ this.required = function(controlid, msg) { var obj = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[fstcontrol]; var sndobj = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[fstcontrol]; var sndobj = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[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.ismobile = function (controlid, msg, required) { var obj = document.forms[this.formname].elements[controlid]; obj.value = utils.trim(obj.value); if (obj.value == '' && !required) { return; } else { if (!utils.ismobile(obj.value)) this.adderrormsg(msg); } } /* * * 检查输入的内容是否是为空 * * @param : controlid 表单元素的id * @param : msg 错误提示信息 * @param : required 是否必须 */ this.isnulloption = function(controlid, msg) { var obj = document.forms[this.formname].elements[controlid]; obj.value = utils.trim(obj.value); if (obj.value > '0' ) { return; } else { this.adderrormsg(msg); } } /* * * 检查输入的内容是否是"2006-11-12 12:00:00"格式 * * @param : controlid 表单元素的id * @param : msg 错误提示信息 * @param : required 是否必须 */ this.istime = function(controlid, msg, required) { var obj = document.forms[this.formname].elements[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 = document.forms[this.formname].elements[controlidstart]; var end = document.forms[this.formname].elements[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(chk, msg) { var obj = document.forms[this.formname].elements[controlid]; var checked = false; 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 = document.getelementbyid(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. * * @author chunsheng wang < wwccss@263.net > */ 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; } /* * * move one selected option from a select. * * @author chunsheng wang < wwccss@263.net > */ 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 ",". * * @author chunsheng wang < wwccss@263.net > */ 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(","); }