📄 valid.js
字号:
function Validator(formName, elemName, outId, msg) {
if (formName)
this.formName = formName;
if (elemName)
this.elemName = elemName;
if (outId)
this.outId = outId;
if (msg)
this.msgList = ["", msg];
}
Validator.prototype.defaultMsgIndex = 0;
Validator.prototype.getFormValues = function() {
var elemValues = new Array();
var form = document.forms[this.formName];
var formElements = form.elements;
for (var i = 0; i < formElements.length; i++) {
var element = formElements[i];
if (element.name == this.elemName) {
var elemType = element.type.toLowerCase();
if (elemType == "text" || elemType == "textarea"
|| elemType == "password" || elemType == "hidden")
elemValues[elemValues.length] = element.value;
else if (elemType == "checkbox" && element.checked)
elemValues[elemValues.length]
= element.value ? element.value : "On";
else if (elemType == "radio" && element.checked)
elemValues[elemValues.length] = element.value;
else if (elemType.indexOf("select") != -1)
for (var j = 0; j < element.options.length; j++) {
var option = element.options[j];
if (option.selected) {
elemValues[elemValues.length]
= option.value ? option.value : option.text;
}
}
}
}
return elemValues;
}
Validator.prototype.verify = function(value) {
return 0;
}
Validator.prototype.showMsg = function(index) {
document.getElementById(this.outId).innerHTML
= htmlEncode(this.msgList[index]);
}
Validator.prototype.execute = function() {
var msgIndex = this.defaultMsgIndex;
var elemValues = this.getFormValues();
for (var i = 0; i < elemValues.length; i++)
if (elemValues[i]) {
msgIndex = this.verify(elemValues[i]);
if (msgIndex != 0)
break;
}
this.showMsg(msgIndex);
return msgIndex == 0;
}
function RequiredValidator(formName, elemName, outId, msg) {
this.base = Validator;
this.base(formName, elemName, outId, msg);
delete this.base;
}
RequiredValidator.prototype = new Validator();
RequiredValidator.prototype.defaultMsgIndex = 1;
RequiredValidator.prototype.verify = function(value) {
return value.length > 0 ? 0 : 1;
}
function LengthValidator(formName, elemName, outId, min, max, msgMin, msgMax) {
this.base = Validator;
this.base(formName, elemName, outId);
delete this.base;
this.min = min;
this.max = max;
this.msgList = ["", msgMin, msgMax];
}
LengthValidator.prototype = new Validator();
LengthValidator.prototype.verify = function(value) {
if (value.length < this.min)
return 1;
if (value.length > this.max && this.max > 0)
return 2;
return 0;
}
function ValidatorList() {
this.validatorArray = new Array();
}
ValidatorList.prototype.add = function(validator) {
this.validatorArray[this.validatorArray.length] = validator;
}
ValidatorList.prototype.execute = function(formName, elemName) {
var valid = true;
for (var i = 0; i < this.validatorArray.length; i++) {
var validator = this.validatorArray[i];
if (validator.formName == formName)
if (!elemName || validator.elemName == elemName)
if (!validator.execute())
valid = false;
}
return valid;
}
var pageValidators = new ValidatorList();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -