window.location.replace无法使用jquery

时间:2016-12-10 22:12:45

标签: javascript jquery html

由于某些原因,我在这里遇到了一些问题。我有另一个页面几乎完全相同的代码,它将用户重定向到我希望他们去的页面。出于某种原因,这个没有。我已经尝试将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>

2 个答案:

答案 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();
    }
  });
});