2013-05-10 4 views
0

현재 특정 div의 모든 input 및 select 요소에 값이 설정되어 있는지 (null이 아님) 확인한 다음, 모든 값이 일단 확인되면 jQuery를 작성하고 있습니다. 그러면 폼의 다음 부분에서 슬라이드 할 다음 버튼이 표시됩니다.jQuery 오류 : ReferenceError : completedInputs가 정의되어 있지 않습니다.

여기 내 마크 업입니다 :

<div id="signupFormInner"> 
    <form action="/" method="post" id="form1"> 
     <div id="slide1">  
      <label for="title">Title:</label> 
      <select name="title" id="title"> 
       <option value="">-- Please select --</option> 
       <?php foreach($this->titles as $title) { ?> 
        <option value="<?php echo $title; ?>"><?php echo $title; ?></option> 

       <?php } ?> 
      </select> 
      <label for="firstname">First Name:</label><input type="text" name="firstname" id="firstname" /> 
      <label for="lastname">Last Name:</label><input type="text" name="lastname" id="lastname" /> 
      <label for="email">Email Address:</label><input type="email" name="email" id="email" /><label for="email">Confirm Email Address:</label><input type="email" id="email_confirm" /> 

     </div> 
     <div id="slide2"> 
      content in here 

     </div> 
     <div id="slide3"> 
      content in here 

     </div> 
    </form> 
</div> 

내가 전역 한 번 사업부 내의 모든 입력 필드이 완료 미끄러 내 양식 안에 3 명 개의 div가 있습니다. 여기에 시도 jQuery를 :

사용자가 jQuery를 양식의 사업부 내의 모든 다른 요소가 너무 값이 있는지 확인합니다 형태의 요소를 변경하면 내가 여기서 할 수 있습니다하려고 무엇
jQuery('#signupFormInner input, #signupFormInner select').change(function(i, v) { 
     var parentDivId = jQuery(this).parent().attr('id'); 
     jQuery("#" + parentDivId + " input, #" + parentDivId + " select").each(function(i2, v2) { 
      if(jQuery(v2).attr('value') == "") { 
       var completedInputs = false; 
      } else { 
       var completedInputs = true; 
      }    
     }); 
     alert(completedInputs); 
    }); 

, 그렇다면 이전처럼 폼의 더 많은 요소를 포함하는 버튼을 눌러 다음 div를 슬라이드 할 수 있습니다.

당신은 내가 그 사업부 내의 모든 다른 요소가 완료되었는지 여부에 참 또는 거짓 의존하는 변수라는 completedInputs를 설정하고 볼 수 있지만 내가 말하는 오류를 받고 계속 같이

ReferenceError: completedInputs is not defined 
[Break On This Error] 

alert(completedInputs); 

내가 할 수있는 true 또는 false인지 여부를 변수를 정의 할 때이 문제를 해결하는 것 같아서 왜 정의되지 않았는지 알 수 없습니다.

어디서 잘못 볼 수 있습니까? 감사

답변

2

범위의 문제 - 당신의 .each()

var completedInputs; 
jQuery("#" + parentDivId + " input, #" + parentDivId + " select").each(function(i2, v2) { 
      if(jQuery(v2).attr('value') == "") { 
       completedInputs = false; 
      } else { 
       completedInputs = true; 
      }    
}); 
alert(completedInputs); 
+0

아 그래의 completedInputs 외부 정의! 감사합니다 – devoncrazylegs

+0

당신은 오신 것을 환영합니다! –

관련 문제