验证表单后,jQuery / JS不会重定向

时间:2015-03-30 22:01:28

标签: javascript jquery validation redirect

我尝试使用jQuery / JavaScript从表单验证密码。验证后,我希望脚本重定向我。但是,目前还没有。

注意:这只是我大学的一项练习,因此代码非常简单:

HTML:

!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="js/passwordCheck.js"></script>
</head>
<body>
  <form method="post" name="form1" id="form-password" action="">
    <label>Password:</label>
    <input type="password" name="password" id="password" value="" size="32" />
    <input type="submit" value="Continue" id="submit">
  </form>
</body>
</html>

JS / jQuery的:

'use strict';
jQuery(document).ready(function($) { 
    $('#form-password').submit(function() { 

        var passwordVal = $('#password').val();

        if (passwordVal === "123" ) {
            $(location).attr('href', 'http://www.stackoverflow.com'); 
        }   

    });
});

我试过了:

window.location.href = "http://www.stackoverflow.com";

但这也不起作用。

我知道我需要检查提交的数据,我的问题只是重定向。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

试试这个,你正在修改window.location.href属性,你真的想要像这样设置window.location

$('#form-password').submit(function(e) {
    e.preventDefault();

    var passwordVal = $('#password').val();

    if (passwordVal === '123') {
        window.location = 'http://www.stackoverflow.com';
    }

});

答案 1 :(得分:2)

您只需要在提交侦听器中使用preventDefault(),然后调用

window.location.href = "...";

目前,在不阻止提交表单的默认操作的情况下,表单会尝试POST您的数据,无论提交回调中发生了什么。

如果您阻止默认,则表单将不会提交,直到您返回true。

话虽如此,重定向应该在后端或前端MVC框架上执行。无论如何,密码数据需要在某处提交并检查数据库。