2012-09-01 5 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

또한 코드를 제거하면 (패스워드! = 패스워드) 제대로 작동합니다. – 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 on으로 변경하십시오. – gvsrepins

관련 문제