2012-03-26 10 views
0

自分のサイトに「サインアップ」ページを作成しましたが、「onsubmit」イベントが発生したときにJavaScriptの検証機能が呼び出されないようです。私はすでにこのサイトの似たような問題に関する記事を読んでいますが、その問題は、先に進んでアクションを実行することを示すブール値を返すのを忘れているようです。このページはphp関数 "include"を持つ別のページに "インクルード"されています。 validateFormにアラートが機能が全く呼ばれたかどうかをテストするために使用された機能することフォームがjavascriptのonsubmitイベントをトリガーしない

<script type="text/javascript"> 
    function validateForm() { 
     //alert(); 
     var display = document.getElementById('error'); 
     var usernameValue = document.getElementById('username').value; 
     var passwordValue = document.getElementById('password').value; 
     var rptPasswordValue = document.getElementById('rptPassword').value; 
     var emailValue = document.getElementById('email').value; 
     var aliasValue = document.getElementById('alias').value; 

     if (usernameValue != '' && passwordValue != '' && rptPasswordValue != '' && emailValue != '' && aliasValue != '') { 
      if (passwordValue == rptPasswordValue) { 
       if (usernameValue.length > 32 || aliasValue.length > 32) { 
        displayError("Username or password is too long (Both fields must contain 32 characters or less)"); 
       } else { 
        if (passwordValue.length > 32 || passwordValue.length < 4) { 
         displayError("Password must be between 4 and 32 characters in length."); 
        } else { 
         if (emailValue.indexOf('@') == -1 || emailValue.length > 64 || emailValue.length < 6) { 
          displayError("Please make sure you have entered a valid email. (Emails must be between 6 and 64 characters in length)"); 
         } else { 
          if (aliasValue < 3 || aliasValue > 32) { 
           displayError("Your alias must be between 3 and 32 characters in length."); 
          } else { 
           return true; 
          } 
         } 
        } 
       } 
      } else { 
       displayError("Please make sure both passwords match."); 
      } 
     } else { 
      displayError("Please make sure each field contains a value."); 
     } 

     return false; 
    } 

    function displayError(var msg) { 
     document.getElementById('error').innerHTML = msg; 
    } 
</script> 
<h1>Sign Up</h1> 
<p>All fields must be filled out in order for an account to be created.</p> 
<form onsubmit="return validateForm();" action="register.php" method="post"> 
    <table> 
     <tr> 
      <td> 
       <p class="txtLabel">Username:</p> 
      </td> 
      <td> 
       <input type="text" class="defaultTxt" tabindex="0" id="username" name='username'> 
      </td> 
      <td> 
       <p class="txtLabel">Email Address:</p> 
      </td> 
      <td> 
       <input type="text" class="defaultTxt" tabindex="1" id="email" name='email'> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <p class="txtLabel">Password:</p> 
      </td> 
      <td> 
       <input type="password" class="defaultTxt" tabindex="2" id="password" name='password'> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <p class="txtLabel">Repeat Password:</p> 
      </td> 
      <td> 
       <input type="password" class="defaultTxt" tabindex="2" id="rptPassword" name='rptPassword'> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <p class="txtLabel">Nickname/Alias:</p> 
      </td> 
      <td> 
       <input type="text" class="defaultTxt" tabindex="4" id="alias" name='alias'> 
      </td> 
     </tr> 
    </table> 
    <p><b id='error' style='color: red'></b></p><br /> 
    <input type="submit" value='' name='submit' class="submitBtn"> 
</form> 

注、そうではありません。

アイデア?ここにあなたのJavaScriptで

答えて

1
function displayError(var msg) { 
     document.getElementById('error').innerHTML = msg; 
    } 

あなたはfunction displayError(var msg)のように書く傾けるあなたのJavaスクリプト機能で

function displayError(msg) { 
     document.getElementById('error').innerHTML = msg; 
    } 

に交換してください。

幸運。

+0

ありがとう、私は非常に明白な何かを逃したと信じられない:D – Darestium

+0

@Darestium、問題ありません。お力になれて、嬉しいです.. – Milap

0

バグ:

function displayError(var msg) { 
         ^^^ 
    document.getElementById('error').innerHTML = msg; 
} 

あなたはメソッドのパラメータにvarキーワードは必要ありません。

関連する問題