2012-01-05 98 views
1

由於某些原因,無論這些字段是否爲空,此代碼始終會重定向到education.php。我想驗證這些字段中有值,但由於某些原因,它們會保持重定向,但不會在數據庫中寫入任何內容。任何幫助將不勝感激。JavaScript表單驗證仍然重定向

<body> 
<form action="education.php" method="post" onsubmit="return validate_fields()"> 
<div style="text-align: right"> 
<ul> 
First Name: <input id="first_name" name="first_name" size=25/> <br> 
Last Name: <input id="last_name" name="last_name" size=25/> <br> 
Email: <input id="emailaddress" name="emailaddress" size=25/> <br> 
Password: <input id="user_password" name="user_password" type="password" size=25/> <br> 
<center><input type="submit" name="submit" id="submit" value="Register Now"/></center> 
</ul> 
</div> 
</form> 
<script type="text/javascript"> 
function validate_fields() 
{ 
    var first_name = document.getElementByID("first_name").value; 
    var last_name = document.getElementById("last_name").value; 
    alert(""+first_name+" "+last_name); 
    if (first_name.length < 1 || last_name.length < 1) 
    { 
     alert("Please fill in your name."); 
     return false; 
    } 
    var email = document.getElementById("emailaddress").value; 
    if (email.length < 1) 
    { 
     alert("Please fill in your email address."); 
     return false; 
    } 
    var password = document.getElementById("password").value; 
    if (email.length < 1) 
    { 
     alert("Please put in a password."); 
     return false; 
    } 
    alert(first_name+" "+last_name+" "+email); 
    return false; //was true, changed to see if still redirects. 
} 
</script> 
</body> 
+0

您是否收到帶有姓名和電子郵件的最終「提醒」?或之前的任何提醒(壞名字,錯誤的電子郵件,錯誤的密碼)? – OnlineCop 2012-01-05 00:07:37

+0

沒有警報顯示。 – 2012-01-05 00:09:32

+0

甚至不是第一個? – 2012-01-05 00:11:34

回答

5

你在函數的第一行有錯字,所以它沒有返回false(或true),它根本就沒有運行。這解釋了爲什麼你沒有得到任何警報,以及爲什麼表單提交繼續。

var first_name = document.getElementByID("first_name").value; 
// you need a lowercase "d" here ------^ 

它應該是.getElementById()而不是.getElementByID()

這是您可以輕鬆地找到適合您的瀏覽器的適當開發人員工具的事情。 Chrome內置了這個功能(只需按下ctrl-shift-J來啓動開發工具),或者您可以爲FireFox添加Firebug,而IE現在有幾個版本的開發工具欄選項。

+0

有一個[清除堆棧溢出的活動](http://meta.stackexchange.com/q/167342/187073)通過刪除這些錯字相關的問題 - 我們真的可以使用你的幫助!你可以通過在這個問題上進行近距離投票來介入一點嗎? – VisioN 2013-02-28 18:56:12

2

您在這裏有一個錯字:

var first_name = document.getElementById("first_name").value; 

你寫ByID它是前人的精力ById