我正在尝试使用 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";
但这也不起作用。
我知道我需要检查提交的数据,我的问题只是重定向。
我该如何解决这个问题?
最佳答案
您只需要在提交监听器中调用 preventDefault(),然后调用
window.location.href = "...";
目前,在不阻止提交表单的默认操作的情况下,表单会尝试发布您的数据,而不管提交回调中发生了什么。
如果您阻止默认值,则在您返回 true 之前表单不会提交。
也就是说,重定向应该在后端或由前端 MVC 框架执行。无论如何,都需要提交密码数据并根据某处的数据库进行检查。
关于javascript - jQuery/JS 不会在验证表单后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357137/