2013-06-13 4 views
0

Я нахожусь в процессе написания контактной формы.A Переключатель внутри Функция Javascript

У меня есть две функции Javascript в голове (переместите их позже, но это другой вопрос).

Первая функция, Validate(), для события onblur не работает. Вторая функция, formValidate(), для работы onsubmit.

Я хочу использовать оператор switch в функции javascript для использования в событии html onblur.

Javascript:

<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

Вы нашли ошибки? Если нет, я могу отредактировать сообщение и показать вам, где ваш код ломается. В файле HTML есть некоторые проблемы с идентификаторами! –

+1

И вы также должны вернуть false, чтобы форма не выполнялась, иначе проверка не будет полностью завершена (почта будет отправляться каждый раз) –

Смежные вопросы