Проверка формы Javascript все еще перенаправляет - PullRequest
1 голос
/ 05 января 2012

По какой-то причине этот код всегда перенаправляет в файл 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>

Ответы [ 2 ]

5 голосов
/ 05 января 2012

В первой строке вашей функции есть опечатка, поэтому она не возвращает false (или true), она просто не работает вообще.Это объясняет как то, почему вы не получаете никаких предупреждений, так и почему отправка формы продолжается.

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

Это должно быть .getElementById(), а не .getElementByID().

ЭтоПодобные вещи вы можете легко найти для себя с помощью соответствующих инструментов разработчика для вашего браузера.В Chrome это встроено (просто нажмите ctrl-shift-J, чтобы вызвать инструменты разработки), или вы можете добавить Firebug для FireFox, и IE уже имеет опцию панели инструментов для нескольких версий.

2 голосов
/ 05 января 2012

У вас есть опечатка здесь:

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

Вы написали ByID это может быть ById!

...