2012-09-21 4 views
0

이 코드를 살펴보고 왜 내 오류 변수가 여전히 0으로 비명을 지르는 오류가 발생하더라도 왜 시도하고 변경하려고하는지 알려주십시오. 나는 지금 막 잃어버린 것이다.Jquery 변수가 업데이트되지 않습니까?

validationError = 0; 
$("#step1continue").click(function(){ 

     var fname = $('#fname'); 
     if (fname.val() == "") { 
      fname.addClass("needsfilled"); 
      fname.val('Required!'); 
         validationError = 1; 
     } else { 
        validationError = 0; 
     } 

     var lname = $('#lname'); 
     if (lname.val() == "") { 
      lname.addClass("needsfilled"); 
      lname.val('Required!'); 
         validationError = 1; 
     } else { 
       validationError = 0; 
     } 

     var company_name = $('#company_name'); 
     if (company_name.val() == "") { 
      company_name.addClass("needsfilled"); 
      company_name.val('Required!'); 
         validationError = 1; 
     } else { 
        validationError = 0; 
     } 

     var email = $('#email'); 
     if (email.val() == "") { 
      email.addClass("needsfilled"); 
      email.val('Required!'); 
         validationError = 1; 
     } else { 
        validationError = 0; 
     } 

     var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
       if (!emailReg.test(email.val())) { 
         email.addClass("needsfilled"); 
      email.val('Use a real email address!'); 
         validationError = 1; 
     } else { 
       validationError = 0; 
     } 

     var phone = $('#phone'); 
       if (phone.val() == "") { 
      phone.addClass("needsfilled"); 
      phone.val('Required!'); 
         validationError = 1; 
     } else { 
        validationError = 0; 
     } 
       if (phone.val().length < 10) { 
      phone.addClass("needsfilled"); 
      phone.val('10 digits minimum'); 
         validationError = 1; 
     } else { 
       validationError = 0; 
     } 

       var phoneregxp = /^[0-9]$/; 
       if (phoneregxp.test(phone.val())) { 
         phone.addClass("needsfilled"); 
      phone.val('Numbers ONLY'); 
         validationError = 1; 
     } else { 
        validationError = 0; 
     } 

     alert(validationError); 

}); 

답변

3

성공적으로 수행 할 때마다 validationError를 계속 재설정합니까?

#fname이 작성되지 않은 경우 validationError를 1로 설정합니다. 괜찮습니다. 그런데 #lname을 확인하면 그 중 하나가 채워지므로 validationError는 다시 0입니다.

단순한 on/off 값 대신에 미친 듯이 주위에 잡아 당기는 이유는 무엇입니까 INCREMENT 언제든지 오류가 있습니까?

validationError = 0; 
if (...) { validationError++ } 
if (...) { validationError++ } 
if (validationError > 0) { 
    alert('You have ' + validationError + ' errors'); 
} 
+2

'새로운 답변'알림이 표시 될 때까지 정확하게 입력하신 내용입니다. –

+0

오, 굉장합니다! 실제로 당신이 반복해서 다시 설정하는 것에 대해 말한 것을 사용하고 단순히 0을 제거했습니다. '클릭'기능을 사용하는 동안 1 개라도 1로 설정되어 있으면 2 단계로 이동하는 기능이 중지되어 귀하의 답변이 완벽 해졌습니다! –

관련 문제