重定向具有多个提交输入的表单

时间:2015-11-12 16:16:35

标签: javascript jquery html

我有一个 3 单独输入的表单,其类型为"提交"。

前两个输入在单击后输出一条消息,但最后一个输入应该重定向到另一个页面,但它不会这样做。 我认为这是因为表单在进入JavaScript重定向之前提交并刷新页面。

这是我的代码:

form.php的

<form class="form" id="form" method="POST" enctype="application/x-www-form-urlencoded">
    <br>
         <input type="email" name="email" id="email" maxlength="80" value="<?php echo $email ?>" placeholder="Enter Your Email" /><br /><br>
        <input id="button4" type="submit" value="Get Security Question" name="submit2" style="cursor:pointer;"/><br> 
            <br><input type="password" name="securitya"id="securitya" maxlength="20" value="<?php echo $securitya ?>" placeholder="Enter Your Security Answer" /> <br />
        <br>
    <input id="button3"type="submit" value="Check Answer" name="submit" style="cursor:pointer;"/>
    <br>
        <br><input type="password" name="newpassword" id="newpassword" maxlength="20" placeholder="Enter Your New Password" /> <br />

    <br><input type="password" name="confirmpassword" id="confirmpassword" maxlength="20" placeholder="Re-Enter Your New Password" /> <br />

<br>
    <input id="button2" type="submit" value="Change Password" disabled="disabled" name="submit" style="cursor:pointer;"/>

的JavaScript

jQuery(function(){
        $("#button2").click(function(){                                         
        $(".error").hide();
        var hasError = false;
        var passwordVal = $("#newpassword").val();
        var checkVal = $("#confirmpassword").val();
        if (passwordVal == '') {
            $("#newpassword").after('<span class="error" >Please enter a password.</span>');
            hasError = true;
        } else if (checkVal == '') {
            $("#confirmpassword").after('<span class="error">Please re-enter your password.</span>');
            hasError = true;
        } else if (passwordVal != checkVal ) {   
            $("#confirmpassword").after('<span id = "pass" class="error">Passwords do not match.</span>');
            hasError = true;
        }
        if(hasError == true) { return false; }
        else {

            $("#button2").after('<span class="error">Passwords accepted.</span>');

            window.location.href='adminsignin.php';
            }

    }); 
});

奇怪的是,接受的密码&#39;密码被接受&#39;屏幕上出现一瞬间,但没有重定向到&#39; adminsignin.php&#39;

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

在您的javascript中,将事件传递给点击处理程序,并阻止默认()。

$("#butotn2").click(function(e) {
    e.preventDefault();
   ...
}

提交按钮具有默认行为,因此您需要阻止其默认行为,以便您可以执行操作,然后使用window.location.href重定向。

请尝试更改为document.location = 'your URL';