我尝试使用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";
但这也不起作用。
我知道我需要检查提交的数据,我的问题只是重定向。
我该如何解决这个问题?
答案 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框架上执行。无论如何,密码数据需要在某处提交并检查数据库。