我尝试在成功登录后直接转到另一个文件。但是,在登录成功警报后,我似乎无法进入b.html。它似乎仍然保留在同一页面中。我尝试了...
,document.location.href
,但似乎没有效果
window.location.replace
答案 0 :(得分:4)
您的重定向无法正常工作的原因是单击Login
按钮会提交表单。这是Web浏览器的正常行为。在您的情况下,您需要这样做以防止此默认行为。
使用jQuery
,你可以这样做:
$('form.login-form').submit((e) => {
e.preventDefault();
});
由于您根本不在代码中使用jQuery
,因此您可能对此类版本感兴趣:
form.addEventListener('submit', e => {
e.preventDefault();
});
另一种解决方案是不将type="submit"
属性添加到登录按钮。
但是,您可以做的最好的事情(以及互联网用户习惯使用的)是在提交表单后重定向用户。然后,这不仅适用于用户单击按钮,而且还可以按下ENTER
等等。
然后你的代码应该是这样的:
(() => {
let form;
function init() {
form = document.querySelector('login-form');
if (!form) {
throw new ElementNotFoundException();
}
form.addEventListener('submit', onSubmitHandler);
}
function onSubmitHandler(e) {
e.preventDefault();
// get values, validate...
window.location.href = 'b.html';
}
init();
});
答案 1 :(得分:1)
也许位置href未正确写入,请将window.location.href = "/b.html";
替换为window.location.href = "b.html";