var FormValid = function(frm) {
this.frm = frm;
this.errMsg = new Array();
this.errName = new Array();
// 输入值不能为空
this.required = function(inputObj) {
if (typeof (inputObj) == "undefined" || inputObj.value.trim() == "") {
return false;
}
return true;
};
this.mustOne = function(inputObj) {
var fstObj = inputObj;
if (fstObj != null) {
for (var i = 0; i < fstObj.value.length; i++) {
if (fstObj.value.charAt(i) == "1") {
return true;
}
}
}
return false;
};
this.equal = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName')];
if (fstObj != null && sndObj != null) {
if (fstObj.value != sndObj.value) {
return false;
}
}
return true;
};
// 数字对比,输入值要大于对比值
this.numgt = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
if (fstObj.value - sndObj.value < 0) {
return false;
}
}
return true;
};
// 数字对比,输入值要小于对比值
this.numdt = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
if (fstObj.value - sndObj.value > 0) {
return false;
}
}
return true;
};
// 数字对比,输入值不能等于对比值
this.noequal = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
if (fstObj.value == sndObj.value) {
return false;
}
}
return true;
};
// 输入值大于对比日期
this.gt = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var i = "";
if (fstObj.value.indexOf('-') > 0) {
i = '-';
} else if (fstObj.value.indexOf('/') > 0) {
i = '/';
} else if (fstObj.value.indexOf('.') > 0) {
i = '.';
}
var fs = fstObj.value.split(i);
var fsYear = fs[0];
var fsMonth = fs[1];
var fsDay = fs[2];
var sn = sndObj.value.split('-');
var snYear = sn[0];
var snMonth = sn[1];
var snDay = sn[2];
if (fsYear - snYear < 0) {
return false;
} else if (fsYear == snYear && fsMonth - snMonth < 0) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth
&& fsDay - snDay <= 0) {
return false;
}
}
return true;
};
// 输入值大于等于对比日期
this.dt = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName1')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var i = "";
if (fstObj.value.indexOf('-') > 0) {
i = '-';
} else if (fstObj.value.indexOf('/') > 0) {
i = '/';
} else if (fstObj.value.indexOf('.') > 0) {
i = '.';
} else {
if (fstObj.value - sndObj.value > 0)
return false;
}
var fs = fstObj.value.split(i);
var fsYear = fs[0];
var fsMonth = fs[1];
var fsDay = fs[2];
var sn = sndObj.value.split('-');
var snYear = sn[0];
var snMonth = sn[1];
var snDay = sn[2];
if (fsYear - snYear < 0) {
return false;
} else if (fsYear == snYear && fsMonth - snMonth < 0) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth
&& fsDay - snDay < 0) {
return false;
}
}
return true;
};
// 输入值小于对比日期
this.today = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName2')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var i = "";
if (fstObj.value.indexOf('-') > 0) {
i = '-';
} else if (fstObj.value.indexOf('/') > 0) {
i = '/';
} else if (fstObj.value.indexOf('.') > 0) {
i = '.';
}
var fs = fstObj.value.split(i);
var fsYear = fs[0];
var fsMonth = fs[1];
var fsDay = fs[2];
var sn = sndObj.value.split('-');
var snYear = sn[0];
var snMonth = sn[1];
var snDay = sn[2];
if (fsYear - snYear > 0) {
return false;
} else if (fsYear == snYear && fsMonth - snMonth > 0) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth
&& fsDay - snDay > 0) {
return false;
}
return true;
}
return true;
};
this.today2 = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName2')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var fs = fstObj.value.split('-');
var fsYear = parseInt(fs[0]);
var fsMonth = parseInt(fs[1]);
var fsDay = parseInt(fs[2]);
var sn = sndObj.value.split('-');
var snYear = parseInt(sn[0]);
var snMonth = parseInt(sn[1]);
var snDay = parseInt(sn[2]);
if (fsYear < snYear) {
return false;
} else if (fsYear == snYear && fsMonth < snMonth) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth && fsDay < snDay) {
return false;
}
}
return true;
};
this.today3 = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulName3')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var fs = fstObj.value.split('-');
var fsYear = parseInt(fs[0]);
var fsMonth = parseInt(fs[1]);
var fsDay = parseInt(fs[2]);
var sn = sndObj.value.split('-');
var snYear = parseInt(sn[0]);
var snMonth = parseInt(sn[1]);
var snDay = parseInt(sn[2]);
if (fsYear < snYear) {
return false;
} else if (fsYear == snYear && fsMonth < snMonth) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth && fsDay < snDay) {
return false;
}
}
return true;
};
// 验证是否为固定电话(0570~0580)
this.gddh = function(inputObj) {
var beg = inputObj.value.substring(0, 1);
var beg1 = inputObj.value.substring(1, 2);
var beg2 = inputObj.value.substring(2, 3);
var beg3 = inputObj.value.substring(3, 4);
if (beg == 0 && beg1 == 5 && beg2 == 8 && beg3 == 0) {
return true;
}
if (beg != 0 || beg1 != 5 || beg2 != 7) {
return false;
}
return true;
};
// 判断inputObj的值是否大于等于eqaulDate的值。若小于,则返回false,否则返回true
this.compDate = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulDate')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var fs = fstObj.value.split('-');
var fsYear = parseInt(fs[0]);
var fsMonth = parseFloat(fs[1]);
var fsDay = parseFloat(fs[2]);
var sn = sndObj.value.split('-');
var snYear = parseInt(sn[0]);
var snMonth = parseFloat(sn[1]);
var snDay = parseFloat(sn[2]);
if (fsYear < snYear) {
return false;
} else if (fsYear == snYear && fsMonth < snMonth) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth && fsDay < snDay) {
return false;
}
}
return true;
};
this.compDateGt = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('eqaulDate')];
alert(sndObj.value);
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
var fs = fstObj.value.split('-');
var fsYear = parseInt(fs[0]);
var fsMonth = parseInt(fs[1]);
var fsDay = parseInt(fs[2]);
var sn = sndObj.value.split('-');
var snYear = parseInt(sn[0]);
var snMonth = parseInt(sn[1]);
var snDay = parseInt(sn[2]);
if (fsYear > snYear) {
return false;
} else if (fsYear == snYear && fsMonth > snMonth) {
return false;
} else if (fsYear == snYear && fsMonth == snMonth && fsDay > snDay) {
return false;
}
}
return true;
};
this.compare = function(inputObj, formElements) {
var fstObj = inputObj;
var sndObj = formElements[inputObj.getAttribute('objectName')];
if (fstObj != null && sndObj != null && fstObj.value.trim() != ''
&& sndObj.value.trim() != '') {
if (!(eval(parseFloat(fstObj.value)
+ inputObj.getAttribute('operate')
+ parseFloat(sndObj.value)))) {
return false;
}
}
return true;
};
this.limit = function(inputObj) {
var len = inputObj.value.length;
if (len) {
var minv = parseInt(inputObj.getAttribute('min'));
var maxv = parseInt(inputObj.getAttribute('max'));
minv = minv || 0;
maxv = maxv || Number.MAX_VALUE;
return minv <= len && len <= maxv;
}
return true;
};
this.range = function(inputObj) {
var val = parseInt(inputObj.value);
if (inputObj.value) {
var minv = parseInt(inputObj.getAttribute('min'));
var maxv = parseInt(inputObj.getAttribute('max'));
minv = minv || 0;
maxv = maxv || Number.MAX_VALUE;
return minv <= val && val <= maxv;
}
return true;
};
this.requireChecked = function(inputObj) {
var minv = parseInt(inputObj.getAttribute('min'));
var maxv = parseInt(inputObj.getAttribute('max'));
minv = minv || 1;
maxv = maxv || Number.MAX_VALUE;
var checked = 0;
var groups = document.getElementsByName(inputObj.name);
for (var i = 0; i < groups.length; i++) {
if (groups[i].checked)
checked++;
}
return minv <= checked && checked <= maxv;
};
this.filter = function(inputObj) {
var value = inputObj.value;
var allow = inputObj.getAttribute('allow');
if (value.trim()) {
return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, allow.split(
/\s*,\s*/).join("|")), "gi").test(value);
}
return true;
};
this.isNo = function(inputObj) {
var value = inputObj.value;
var noValue = inputObj.getAttribute('noValue');
return value != noValue;
};
this.isTelephone = function(inputObj) {
inputObj.value = inputObj.value.trim();
if (inputObj.value == '') {
return true;
} else {
if (!RegExps.isMobile.test(inputObj.value)
&& !RegExps.isPhone.test(inputObj.value)) {
return false;
}
}
return true;
};
this.checkReg = function(inputObj, reg, msg) {
inputObj.value = inputObj.value.trim();
if (inputObj.value == '') {
return true;
} else {
return reg.test(inputObj.value);
}
};
this.passed = function(type) {
if (type == "modile") {
$("div.error").remove();
} else {
if (document.getElementById("htmlError")) {
$("div#htmlError").empty(); // 进入首先清除div内的提醒信息
}
}
if (this.errMsg.length > 0) {
if (type == "modile") {
FormValid.showError(this.errMsg, this.errName);
} else {
FormValid.showError(this.errMsg, this.errName, this.frm.name);
}
if (this.errName[0].indexOf('[') == -1) {
frt = document.getElementsByName(this.errName[0])[0];
if (frt.type == 'text' || frt.type == 'password') {
// frt.focus();
}
}
return false;
} else {
return FormValid.succeed();
}
};
this.addErrorMsg = function(name, str) {
this.errMsg.push(str);
this.errName.push(name);
};
this.addAllName = function(name) {
FormValid.allName.push(name);
};
};
FormValid.allName = new Array();
FormValid.showError = function(errMsg) {
var msg = "";
for (var i = 0; i < errMsg.length; i++) {
msg += "- " + errMsg[i] + "\n";
}
alert(msg);
};
FormValid.showError = function(errMsg, name, formname) {
if (typeof (formname) != 'undefined') {
for (key in errMsg) {
var errorid = [ "errorMsg", key ].join("");
var errorname = "formError";
var error = ' *' + errMsg[key]
+ '
';
$("div#htmlError").append(error);
if (key == 0) {
$('#' + errorid).click();
}
}
} else {
for (var i = 0; i < errMsg.length; i++) {
var error = "