2013-06-13 2 views
0

문의 양식을 쓰는 중입니다.A 스위치 내에서 자바 스크립트 기능

머리에 두 개의 자바 스크립트 기능이 있습니다 (나중에 이동 하겠지만 다른 질문입니다).

onblur 이벤트의 첫 번째 함수 인 Validate()이 작동하지 않습니다. onsubmit 이벤트에 대한 두 번째 함수 인 formValidate()이 작동합니다.

HTML onblur 이벤트에서 사용하려면 javascript 함수에서 switch 문을 사용하고 싶습니다.

자바 스크립트 :

<head> 
<script type="text/javascript"> 
function Validate() 
     { 
      // create array containing textbox elements 
      var input = [document.getElementById('fname'), document.getElementById('lname'), document.getElementById('email1'), document.getElementById('email12'), document.getElementById('message')]; 

       for(var i = 0; i<input.length; i++) 
      // loop through each element to see if value is empty 
      { 
       if(input[i].value == '') 
       { 
         switch (ID){ 

         case 'fname': 
         alert ('enter you first name'); 
         break; 
         case 'lname' : 
         alert ('enter your last name'); 
         break; 
         case 'email1': 
         alert ('enter your email address'); 
         break; 
         case 'email2': 
         alert ('enter your email address'); 
         break; 
         case 'message': 
         alert ('write your message'); 
         break;       
        }     
       }     
      }    
     } 

function formValidate() 
     { 
      // create array containing textbox elements 
      var inputs = [document.getElementById('fname'), document.getElementById('lname'), document.getElementById('email1'), document.getElementById('email2'), document.getElementById('message')]; 

      var error; 

      for(var i = 0; i<inputs.length; i++) 
      // loop through each element to see if value is empty 
      { 
       if(inputs[i].value == '') 
       { 
        error = 'Please complete all fields.'; 
        alert(error); 
        return false; 
        } 
      } 
     } 
</script> 
</head> 

HTML은 :

<form onsubmit="return formValidate()" action="mailto:[email protected]" method="post" id="contactForm" > 
     <fieldset> 
      <dl> 
      <dt> First Name:</dt> 
      <dd> 
       <input class="input" type="text" name="fname" id="fname" onblur="Validate()" /> 
      </dd> 
      <dt> Last Name:</dt> 
      <dd> 
       <input class="input" type="text" name="lname" id="lname" onblur="Validate()"/> 
      </dd> 
      <dt> Email Address:</dt> 
      <dd> 
       <input class="input" type="text" name="email1" id="email1" onblur="Validate()"/> 
      </dd> 
      <dt> Email Address:</dt> 
      <dd> 
       <input class="input" type="text" name="email2" id="email2" onblur="Validate()"/> 
      </dd> 
      <dt> Message:</dt> 
      <dd> 
       <textarea name="address" id="address" rows="10" cols="10" onblur="Validate()"></textarea> 
      </dd> 
      <dd> 
       <input type="submit" value="submit" name="submit" /> 
      </dd> 
      </dl> 
     </fieldset> 
     </form> 

나는 두 번째 기능을 제거 시도하지만, 차이는 없습니다. 나는 배우는 중입니다.

누구든지, 내가 뭘 잘못했는지 말해 줄 수 있습니까?

답변

5

이 작동하지 않습니다, ID 어디서나 정의되지 않은 :

switch (ID) { 

당신이로 교체해야합니다 당신은 디버깅을해야

switch(input[i].id) { 

, 오류가 확실히에 나타납니다 콘솔!

+1

오류를 발견 할 수 있습니까? 그렇지 않은 경우 게시물을 수정하고 코드가 끊기는 부분을 표시 할 수 있습니다. ID를 참조하는 HTML 파일에 몇 가지 문제가 있습니다! –

+1

그리고 form이 실행되지 않도록 false를 반환해야합니다. 그렇지 않으면 유효성 검사가 완전히 완료되지 않습니다 (메일은 매번 전송됩니다) –