2013-04-29 3 views
-1

Когда я нажимаю кнопку отправки, она просто загружает следующую страницу вместо запуска кода javascript.Проверка формы Javascript не называется

Это мой Javascript код:

function Validate(thisForm) 
    { 
     alert("started"); 
     var username22 = document.thisForm.getElementById('username'); 
     var password22 = document.thisForm.getElementById('password'); 
     var password222 = document.thisForm.getElementById('password2'); 
     var email22 = document.thisForm.getElementById('email'); 
     var email222 = document.thisForm.getElementById('email2'); 
     var legalcheck22 = document.thisForm.getElementById('legal'); 
     alert("started 2"); 
     if(username22.value == "") 
     { 
      alert("Please enter a username."); 
      focus.username22; 
      return false; 
     } 
     alert("started 3"); 
     if(password22.value.length < 5) 
     { 
      alert("Password needs to be at least 5 characters long."); 
      focus.password22; 
      return false; 
     } 
     alert("started 4"); 
     if(password22.value != password2.value) 
     { 
      alert("Passwords don't match."); 
      focus.password22; 
      return false; 
     } 
     alert("started 5"); 
     if(email22.value == "") 
     { 
      alert("Please enter an email."); 
      focus.email22; 
      return false; 
     } 
     alert("started 6"); 
     if(email222.value == "") 
     { 
      alert("Please confirm your email."); 
      focus.email222; 
      return false; 
     } 
     alert("started 7"); 
     if(email22.value != email222.value) 
     { 
      alert("Emails don't match."); 
      focus.email22; 
      return false; 
     } 
     if(legalcheck22.checked == false) 
     { 
      alert("You need to agree to our Terms and Conditions."); 
      focus.legalcheck22; 
      return false; 
     } 
     alert("pass"); 
     return true; 
    } 

И это моя форма

<div class="formLayout"> 
     <form id="registerForm" name="registerForm" method="post" onsubmit="return Validate(registerForm)" action="register.php" > 
      <h3 class="centeredText">Register Account</h3> 
      <p> 
      <label>Username</label> 
      <input name="username" id="username" /> 
      <br /> 
      <label>Password</label> 
      <input name="password" type="password" id="password" /> 
      <br /> 
      <label>Confirm Passwrd</label> 
      <input name="password2" type="password" id="password2" /> 
      <br /> 
      <label>Email</label> 
      <input name="email" id="email" /> 
      <br /> 
      <label>Confirm Email</label> 
      <input name="email2" id="email2" /> 
      <br /> 
      <label>Captcha</label> 
      <input id="captcha" /> 
      </p> 
<p>&nbsp;</p> 
      <div id="centerButtons"> 
      <input type="submit" name="register" id="register" value="Register" /> 
      <input type="reset" name="register2" id="register2" value="Reset" /> 
      <p>&nbsp;</p> 
      </div> 
      <!-- end of centerButtons--> 
      <p> 
      <input type="checkbox" name="legal" id="legal" /> 
      <label for="legal">I agree to the <a href="terms.html">Terms and Conditions</a>.</label> 
      </p> 
      <p>&nbsp;</p> 
      <p>&nbsp;</p> 
</form> 
    </div> 
    <!-- end of formLayout div--> 

Я не знаю, почему страница продолжает загрузку при запуске Java-код. Ему удается показать первое предупреждение («начато»), а затем перезагрузка страницы. Не могли бы вы помочь мне? Спасибо

+0

Вы знаете, что смешно, вы написали все это (что я сомневаюсь), и вы даже не проверяли его, если он работает или нет ?! – gdoron

+0

Я написал это с нуля, и почему я его не тестировал? Я, очевидно, размещаю здесь, потому что это не работает. –

+0

Элементы '

ответ

1

getElementById является собственностью объекта document, не всех Element объектов.

var username22 = document.thisForm.getElementById('username'); выдает исключение, убивая JS, и разрешает отправку формы, как обычно.

+0

Спасибо, ты меня в правильном направлении. Он работает сейчас :) –

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