2012-09-01 47 views
-1

我有一个表单验证脚本所有的验证工作。但当关于密码不匹配的警报显示时,这些字段会被清除?我怎么能避免这种情况?密码验证不匹配,清除所有字段。

<script type="text/javascript"> 

function formValidator(){ 
// Make quick references to our fields 
var FNAME = document.getElementById('FNAME'); 
var LNAME = document.getElementById('LNAME'); 
var EMAIL = document.getElementById('EMAIL'); 
var GENDER = document.getElementById('GENDER'); 
var ADDRESS = document.getElementById('ADDRESS'); 
var CONTACTNO = document.getElementById('CONTACTNO'); 
var PASSWORD = document.getElementById('PASSWORD'); 
var PASSWORD2 = document.getElementById('PASSWORD2'); 

// Check each input in the order that it appears in the form! 
if(isAlphabet(FNAME, "Please enter only letters for your first name")) 
{ 
    if(isAlphabet(LNAME, "Please enter only letters for last name")) 
    { 
     if(emailValidator(EMAIL, "Please enter a valid email address")) 
     { 
      if(madeSelection(GENDER, "Please Choose a Gender")) 
      { 
       if(isAlphanumeric(ADDRESS, "Numbers and Letters Only for Address")) 
       { 
        if(isNumeric(CONTACTNO, "Please enter only numbers for Contact No.")) 
        { 
         if(lengthRestriction(PASSWORD, 6)) 
         { 
          if (PASSWORD2 != PASSWORD) 
          { 
          alert ("You did not enter the same new password twice. Please re-enter your password."); 
          return true; 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

return false; 

} 

我认为我的其他功能没有问题?

function notEmpty(elem, helperMsg){ 
if(elem.value.length == 0){ 
    alert(helperMsg); 
    elem.focus(); // set the focus to this input 
    return false; 
} 
return true; 
} 

function isNumeric(elem, helperMsg){ 
var numericExpression = /^[0-9]+$/; 
if(elem.value.match(numericExpression)){ 
    return true; 
}else{ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 
} 

function isAlphabet(elem, helperMsg){ 
var alphaExp = /^[a-zA-Z]+$/; 
if(elem.value.match(alphaExp)){ 
    return true; 
}else{ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 
} 

function isAlphanumeric(elem, helperMsg){ 
var alphaExp = /^[0-9a-zA-Z]+$/; 
if(elem.value.match(alphaExp)){ 
    return true; 
}else{ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 
} 

function lengthRestriction(elem, min){ 
var uInput = elem.value; 
if(uInput.length >= min){ 
    return true; 
}else{ 
    alert("Please enter atleast " +min+ " characters"); 
    elem.focus(); 
    return false; 
} 
} 

function madeSelection(elem, helperMsg){ 
if(elem.value == "Please Choose"){ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
}else{ 
    return true; 
} 
} 

function emailValidator(elem, helperMsg){ 
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/; 
if(elem.value.match(emailExp)){ 
    return true; 
}else{ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 
} 


</script> 

我想我在做这个部分是错误的?但我不知道如何解决它?请帮忙。

if (PASSWORD2 != PASSWORD) 
{ 
alert ("You did not enter the same new password twice. Please re-enter your password."); 
return true; 
} 
+0

我的感觉说,这引起你如何提交表单。请让我看看触发验证的页面。我怀疑你是否在表格中提交。 – Rudy

+0
+0

此外,当我删除代码(PASSWORD!= PASSWORD)时它工作得很好。 – user1460013

回答

0
Try to do something like: 

    if (PASSWORD2.value == PASSWORD.value) 
    { 
     alert ("You did not enter the same new password twice. Please re-enter your password."); 
     return true; 
    } 
} 
+0

谢谢。我做到了,正如你所说的那样,它没有发送。你是怎样做的? – user1460013

+0

对不起,我必须编辑上面的代码。现在就试试这个。 – gvsrepins

+0

我在想,你问题的答案比我更容易做。如果密码只是将操作符“!=”更改为“==”sinal。 – gvsrepins