367 lines
7.7 KiB
JavaScript
Executable File
367 lines
7.7 KiB
JavaScript
Executable File
|
|
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 : 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 ( ! required && obj.value == '')
|
|
{
|
|
return;
|
|
}
|
|
|
|
if ( ! Utils.isMobile(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)
|
|
{
|
|
|
|
if (document.forms[this.formName].elements[controlId])
|
|
{
|
|
var obj = document.forms[this.formName].elements[controlId];
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
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 = 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(",");
|
|
}
|