簡體   English   中英

為什么單擊提交按鈕后提交此表單

[英]Why does this form submit on click of the submit button

<script type="text/javascript">
var geid = function(x) {
        var element = document.getElementById(x);
        return element;
     }          


function submitForm(){
var password = geid('password').value; 
var passwordConfirm = geid('passwordConfirm');

//THIS IS OF HIGH IMPORTANCE THAT THIS CONFIRM PASSWORD MATCHES
//WILL NEED TO VALIDATE IT IN THE PHP AS WELL>
else if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}
else if (passwordConfirm == "") {
    registerMessage.innerHTML = "Please confirm your password.";            
    return false; 
}

else if (passwordConfirm != password) {
    registerMessage.innerHTML = "Your passwords don't match.";          
    return false; 
}
else {
     registerMessage.innerHTML = "Taking you to your profile, please wait a moment...";
     document.forms['registerform'].submit();
}
}

   <form method="post" action="register.php" id="registerform" onsubmit="return submitForm()">


     <label for="password" class="registerLabel">Password</label>
     <input type="password" name="password" id="password" class="registerText" /> <br />

     <label for="passwordConfirm" class="registerLabel">Confirm Password</label>
     <input type="password" name="passwordConfirm" id="passwordConfirm" class="registerText" /> <br />


        <div class="submitMessage">
            <input type="submit" id="submit" name="submit" value="Register" class="registerButton cleangray" /><br />
            <div id="registerMessage"><?php echo $error ?></div>  
        </div>

        <div class="clear"></div>

    </form>

如果不能從else if開始; 你需要開始if

if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}

這樣可以防止您的任何驗證代碼運行,而只能使用標准的提交機制提交表單。

這也不是進行驗證的最佳方法。 您可以建立一串消息並一次性報告所有錯誤,而不是每次出錯都返回。 這樣,用戶就可以知道所有錯誤,您的當前方法將只設置一條消息。

因為您在JavaScript中有錯誤,所以else if沒有先定義if就使用else if 由於該錯誤,所有JavaScript代碼都會失敗。

更改

else if (password == ""){

if (password == ""){

工作演示http://jsfiddle.net/Zs3km/

BTW在代碼HTML中位於<script>標記內,不確定是否是您的錯誤。 您必須在打開<form>標記之前關閉<script>標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM