需要javascript表单验证最终结果
Hi为我的联系人页面编写了javascript验证。为此,我使用了switch case函数。很好。但我无法得出最终结果是真是假。这意味着,如果所有形式都有效,那么结果应该为真,否则为假。如何从函数中得到结果 这是我编写的函数我喜欢使用以下核心javascript:需要javascript表单验证最终结果,javascript,Javascript,Hi为我的联系人页面编写了javascript验证。为此,我使用了switch case函数。很好。但我无法得出最终结果是真是假。这意味着,如果所有形式都有效,那么结果应该为真,否则为假。如何从函数中得到结果 这是我编写的函数我喜欢使用以下核心javascript: window.onload = function (){ var subButton = document.getElementById("submit"); subButton.onclick = function
window.onload = function (){
var subButton = document.getElementById("submit");
subButton.onclick = function (){
var myForm = document.getElementsByTagName('form')[0];
var myFormStatus = false;
myElements = myForm.elements;
for(i=0;i<myElements.length;i++){
ele = myElements[i];
if(ele.type == 'text' || ele.type == 'textarea'){
switch(ele.id){
case 'name':
case 'company':
case 'message':
var valueCheck = textValidation(ele.value);
if(valueCheck){
var errorSpan = spanMaker(ele.nextSibling);
myFormStatus = false;
}
else{
var hideSpan = spanHider (ele.nextSibling);
myFormStatus = true;
}
break;
case 'email':
var emailCheck = emailValidation(ele.value);
if(!emailCheck){
var errorSpan = spanMaker (ele.nextSibling);
myFormStatus = false;
}
else{
var hideSpan = spanHider (ele.nextSibling);
myFormStatus = true;
}
break;
case 'phone':
var phoneNum = regIsNumber(ele.value);
if(!phoneNum){
var errorSpan =spanMaker (ele.nextSibling);
myFormStatus = false;
}
else{
var hideSpan = spanHider (ele.nextSibling);
myFormStatus = true;
}
break;
default :
break;
}
}
function textValidation (text){
return !/[^\s]/.test(text);
}
function emailValidation (email){
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
return String(email).search (reg) != -1;
}
function regIsNumber(fData){
var isInteger_re = /^[\d|\+|\(]+[\)|\d|\s|-]*[\d]$/;
return String(fData).search (isInteger_re) != -1;
}
function spanMaker(element){
while(element && element.nodeType !=1){
element = element.nextSibling;
element.style.display = 'block';
}
}
function spanHider (element){
while(element && element.nodeType !=1){
element = element.nextSibling;
element.style.display = 'none';
}
}
}
}
}
有什么好的建议吗?也许您可以将myFormStatus初始化为true,然后对每个验证案例的每个布尔值使用逻辑运算符“&”,如果1为false,则最后一个结果为false,如果全部为true,则最后一个结果为true 一个好的真值表在编程时总是有用的- 更改为
window.onload = function (){
var myForm = document.getElementsByTagName('form')[0];
var myFormStatus = true;
myForm.onsubmit = function (){
for(i=0;i<myElements.length;i++){
ele = myElements[i];
if(ele.type == 'text' || ele.type == 'textarea'){
var hideSpan = spanHider (ele.nextSibling);
switch(ele.id){
case 'name':
case 'company':
case 'message':
var valueCheck = textValidation(ele.value);
if(valueCheck){ // should really return FALSE if invalid
var errorSpan = spanMaker(ele.nextSibling);
myFormStatus = false;
}
break;
case 'email':
var emailCheck = emailValidation(ele.value);
if(!emailCheck){
var errorSpan = spanMaker (ele.nextSibling);
myFormStatus = false;
}
break;
case 'phone':
var phoneNum = regIsNumber(ele.value);
if(!phoneNum){
var errorSpan =spanMaker (ele.nextSibling);
myFormStatus = false;
}
break;
} // switch
} // if
} // for
} // onsubmit
return myFormStatus
}
此行的位置:var hideSpan=spanHider ele.nextSibling;显示错误。你能纠正它吗?