window.onload = initForms;
var invalidArray = []; // 存储无效标签;
function initForms() {
for(var i=0, len=document.forms.length; i<len; i++) { // 循环页面上所有form表单;
document.forms[i].onsubmit = function() {
// 归位;
invalidArray = [];
document.getElementById("userName").className = "reqd";
document.getElementById("passwd1").className = "reqd";
document.getElementById("passwd2").className = "reqd passwd1";
return validForm();
}
}
}
function validForm() {
var allGood = true; // 默认验证通过;
var allTags = document.getElementsByTagName("*");
for(var i=0; i<allTags.length; i++) { // 遍历每个表单的所有tag标签;
if(!validTag(allTags[i])) {
allGood = false;
}
}
return allGood;
/*validForm(结束;*/
function validTag(thisTag) {
var outClass = "";
var allClasses = thisTag.className.split(" ");
for(var j=0,len=allClasses.length; j<len; j++) {
outClass += validBasedOnClass(allClasses[j], thisTag) + " ";
}
thisTag.className = outClass;
if(outClass.indexOf("invalid") > -1) {
thisTag.className = "invalid"; // 标志input类型无效;
thisTag.parentNode.className = "invalid"; // 标志label无效;
if(invalidArray.length>0) {
//thisTag.focus(); // 取得焦点;
invalidArray[0].focus();
if(invalidArray[0].nodeName == "INPUT") {
invalidArray[0].select(); // 选择内容;
}
}
return false;
}
return true;
/*validTag()函数结束;*/
function validBasedOnClass(thisClass, thisTag) { // 只有空、reqd、passwd1;
var classBack = "";
switch(thisClass) {
case "":
case "invalid":
break;
case "reqd":
if(thisTag.value == "") {
classBack = "invalid";
invalidArray.push(thisTag); // 放入数组;
}
classBack += thisClass;
break;
case "passwd1":
if(thisTag.value != "") {
var pw = document.getElementById("passwd1").value;
console.log(pw);
if(thisTag.value!=pw) {
classBack = "invalid";
invalidArray.push(thisTag); // 放入数组;
}
}
classBack += thisClass;
break;
default:
classBack += thisClass;
}
return classBack;
}
}
}