由于某些原因,我在这里遇到了一些问题。我有另一个页面几乎完全相同的代码,它将用户重定向到我希望他们去的页面。出于某种原因,这个没有。我已经尝试将if语句和所有内容都注释掉,只需使用click.location.replace进行点击操作,但仍然没有运气。
JS
$(document).ready(() => {
$("#login-button").click(() =>{
if($("#pwd").val() === 'pass' && $("#username").val() === 'taylor') {
alert("Welcome: " + $("#username").val());
window.location.replace('../index.html');
} else {
alert("You have the wrong password and username");
}
});
});
HTML
<form id="login-form">
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button id="login-button" class="btn btn-danger">Login</button>
</form>
答案 0 :(得分:5)
您误解了location.replace()
的用途。要重定向,请改用location.href
。
window.location.href = '../index.html';
Location.replace()方法用当前提供的URL替换当前资源。与assign()方法的不同之处在于,在使用replace()之后,当前页面将不会保存在会话历史记录中,这意味着用户无法使用后退按钮导航到该页面。
您还需要阻止表单提交。这导致页面回发给自己。在表单submit
事件处理程序中添加以下内容。
e.preventDefault();
答案 1 :(得分:1)
您只需要停止默认表单提交
html
<form id="login-form">
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label>
<input type="checkbox"> Remember me</label>
</div>
<button id="login-button" class="btn btn-danger">Login</button>
</form>
的jQuery
$(function() {
$("#login-button").click((e) {
if ($("#pwd").val() === 'pass' && $("#username").val() === 'taylor') {
alert("Welcome: " + $("#username").val());
window.location.href('../index.html');
e.preventDefault();
} else {
alert("You have the wrong password and username");
e.preventDefault();
}
});
});