2012-03-26 17 views
0

Ich habe eine "Anmeldeseite" auf meiner Website erstellt, aber die JavaScript-Validierungsfunktion scheint nicht aufzurufen, wenn das "onsubmit" -Ereignis ausgelöst wird. Ich habe bereits die Posts auf dieser Seite über ein ähnliches Problem gelesen, aber ihr Problem scheint zu sein, dass sie vergessen haben, einen booleschen Wert zurückzugeben, der anzeigt, dass sie weitermachen und die Aktion ausführen sollen. Beachten Sie, dass diese Seite auf einer anderen Seite mit der PHP-Funktion "include" enthalten ist.Formular nicht auslösende Javascript onsubmit Ereignis

<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> 

Beachten Sie, dass in der validateForm funktioniert der Alarm wurde verwendet, um zu testen, ob die Funktion überhaupt genannt wurde, ist es nicht.

Irgendwelche Ideen?

Antwort

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

es ersetzen mit

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

in Ihrer Java-Script-Funktion können Sie wie function displayError(var msg) schreiben können nicht.

Viel Glück.

+0

Danke, ich kann nicht glauben, dass ich etwas so offensichtlich übersehen habe: D – Darestium

+0

@Darestium, kein Problem. freue mich zu helfen.. – Milap

0

Bug in Ihrem JavaScript hier:

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

Sie brauchen nicht die var Schlüsselwort in einem Methoden-Parameter.

Verwandte Themen