2012-01-05 71 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