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


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