此表单正在提交,但它不应该

This form is submiting but it shouldn't

我在一个网站上工作,我有这个 change_password.php 脚本,它是一个 3 个字段,用户可以在其中输入他的最后一个密码、他的新密码和他第二次输入的新密码。我试图验证第二个和第三个是否匹配。如果他们不这样做,我会向用户显示警报。

问题是当密码不同时它确实会显示警报,但它会重定向到下一页,do_change_password.php 无论如何。我能做些什么来修复它?

<html>
<?php
session_start(); // começa a session
require "config.php";

if(Check_Login_Status())
{
    Update_Login_Status();
}
else
{
    session_unset();
    phpAlert_Redirect("ACESSO NEGADO", "index.php");
    exit();
}
?>
<head>

    <meta charset = 'UTF-8'>
    <link rel="shortcut icon" href="images/favicon.ico"/>
    <title>Sistema de Estágios - UFMS - Login</title>
    <link href = "css/bootstrap.css" rel = "stylesheet" >
    <link href = "css/index.css" rel = "stylesheet" >
    <script src="js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            $("input").blur(function()
            {
                if($(this).val() == "")
                {
                    $(this).css({"border" : "1px solid #F00"});
                }
                else
                    $(this).css({"border" : "1px solid #FFF"});
            });

            $("#botao").click(function()
            {
                var cont = 0;
                $("#form input").each(function()
                {
                    if($(this).val() == "")
                        cont++;
                });

                if(cont == 0)
                {
                    var x = document.forms["Form"]["new_pass"].value;
                    var y = document.forms["Form"]["conf_pass"].value;
                    if(x == y)
                        $("#form").submit();
                    else
                        alert("Senhas não conferem");
                }
            });
        });
    </script>
</head>

<body>
    <?php
    Set_Barra_Superior($_SESSION["auto"]);
    ?>
    <center>
        <div class = "container">   
            <div class = "principal"> 
                <form id="form" name="Form" method="post" action="do_change_password.php">
                    <p>
                        <label for="a">Senha antiga:</label>
                        <input id="a" name="old_pass" type="password" class="form-control"/><br/>
                    </p>
                    <p>
                        <label for="b">Nova Senha:</label>
                        <input id="b" name="new_pass" type="password" class="form-control"/><br/>
                    </p>
                    <p>
                        <label for="c">Confere nova senha:</label>
                        <input id="c" name="conf_pass" type="password" class="form-control"/><br/>
                    </p>
                    <button id="botao" name="botao" value="login" class="btn btn-primary" style="width: 100%;">Login</button>
                </form>
            </div>
        </div>
    </center>
</body>

将事件添加到点击函数中,在事件上调用preventDefault,然后return false

$("#botao").click(function(e)
{
     e.preventDefault();    
     var cont = 0;
     $("#form input").each(function()
     {
         if($(this).val() == "")
             cont++;
         });

    if(cont == 0)
    {
        var x = document.forms["Form"]["new_pass"].value;
        var y = document.forms["Form"]["conf_pass"].value;
        if(x == y)
            $("#form").submit();
        else
            alert("Senhas não conferem");
    }
    return false;
});

尝试像这样返回 false:

if(cont == 0)
{
    var x = document.forms["Form"]["new_pass"].value;
    var y = document.forms["Form"]["conf_pass"].value;
    if(x != y)
    {
        alert("Senhas não conferem");
        return false;
    }
}