簡體   English   中英

JavaScript表單驗證仍會重定向

[英]Javascript form validation still redirects

由於某些原因,無論這些字段是否為空白,此代碼始終都會重定向到education.php。 我想驗證字段中是否包含值,但由於某些原因,它們會繼續重定向,但不會在數據庫中寫入任何內容。 任何幫助將不勝感激。

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

您在函數的第一行上有一個錯字,因此它不會返回false(或true),根本就沒有運行。 這解釋了為什么您沒有收到任何警報以及為什么表單提交繼續進行。

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

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

使用適合您瀏覽器的開發人員工具,您可以輕松地自己找到這種東西。 Chrome具有內置功能(只需按ctrl-shift-J即可打開開發工具),或者您可以添加Firebug for FireFox,並且IE現在具有適用於多個版本的開發工具欄選項。

您在這里有錯字:

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

您將ByID編寫為ById

暫無
暫無

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

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