<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;
}
這是防止任何的驗證代碼運行,只是使用標準的提交機制提交表單。
這也不是驗證的最佳方式。而不是在每個錯誤返回,你可以建立一串消息,並一次性返回。這樣用戶知道一切都是錯誤的—你目前的方法只會設置一條消息。
更具體地說,這個分析錯誤阻止了函數的運行,所以不會引發'return false';然而,表單提交仍然繼續,因爲這種機制沒有耦合到Javascript。 –
@Tomalak Geret'kal:我正在更新我的答案,因爲你正在寫評論:) – Town
梅@迭代回答! –
由於您在JavaScript中有錯誤,因此您首先使用else if
而未定義if
。由於這個錯誤,所有的JavaScript代碼都會失敗。
變化
else if (password == ""){
到
if (password == ""){
在你的代碼的HTML工作演示http://jsfiddle.net/Zs3km/
BTW是<script>
標籤內,不知道如果你的錯誤就在這裏。在<form>
標記打開之前,您必須關閉<script>
標記。
- 1. Vue - 點擊按鈕提交表格
- 2. 在點擊提交按鈕時提交
- 3. 爲什麼不能用這個按鈕提交表格
- 4. 表單提交,雖然點擊按鈕不是提交按鈕
- 5. 提交一個$ _GET變量作爲提交按鈕被點擊
- 6. VBA提交按鈕點擊
- 7. 當點擊提交按鈕
- 8. 點擊提交按鈕
- 9. 點擊提交後按鈕
- 10. jQuery:ajax,點擊提交按鈕
- 11. 提交按鈕點擊
- 12. 爲什麼在提交表單時點擊按鈕?
- 13. 禁用單擊表格或提交按鈕時提交表單
- 14. 使用Javascript提交作爲用戶提交多個提交按鈕的表格
- 15. 點擊提交按鈕後點擊f5
- 16. PhantomJS按鈕點擊和表單提交
- 17. 上點擊按鈕時提交表單
- 18. 如何通過JQuery提交表單時點擊提交按鈕
- 19. 通過點擊CSS按鈕提交/檢測提交表單
- 20. 機械化 - 提交表單沒有點擊提交按鈕
- 21. 如何提交表單不用其他點擊提交按鈕
- 22. 無法提交表單,而點擊提交按鈕在EJS
- 23. 表單提交不點擊提交按鈕
- 24. 獲取表單提交時,點擊提交按鈕
- 25. 爲什麼我必須點擊我的提交按鈕兩次?
- 26. 點擊提交表格
- 27. HTML按鈕提交表格
- 28. 確定與多個提交按鈕點擊提交按鈕的價值
- 29. 爲什麼Selenium IDE有時無法點擊提交按鈕?
- 30. 我的提交表格未提交數據,未點擊表格
爲了解決這個問題,您應該解釋爲什麼您認爲表單不應該提交。 **代碼轉儲不是一個問題** –