Javascript 表单验证仍然重定向

标签 javascript forms validation

出于某种原因,此代码总是重定向到 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 即可调出开发工具),或者您可以为 FireFox 添加 Firebug,IE 现已为多个版本提供开发工具栏选项。

关于Javascript 表单验证仍然重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735890/

相关文章:

javascript - 如何传递在 jQuery 数据表中选中复选框的行列的值

javascript - 简单的实时 jquery 表单验证器的代码结构

jquery - 如何防止打字时使用空格?

php - 当我的电子邮件表单脚本成功返回时,如何返回绿色复选标记图标

javascript - jQuery Ajax多次提交表单

php - PHP 表单验证/避免注入(inject)

相当于 Ruby 的 String#scan 的 JavaScript

javascript - 使用 javascript 作为背景图片

javascript - 确定 2 的幂?

php - 当数据来自多个表时,如何使用 PHP 和 MYSQL 填充表单中的字段?