javascript - document.location 或 window.location.href 在条件的 if 部分不起作用,但在 else 部分起作用

标签 javascript url

我使用以下代码来验证表单中的密码。如果密码正确 - 将用户移至站点 X。如果密码不正确(3 次尝试后),请将用户移至站点 Y。

由于某种原因,它仅适用于站点 Y。

我的代码:

<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body>
        <form>
        Enter password to continue: <br>
        <input type="text" id="user"/>
        <input type="button" id="myButton" value="Enter site"/>
        </form>

        <script>
           let tries = 0;
                let error = 0;
            let password = 'tiesto';

            document.querySelector("#myButton").onclick = ()=> {
                let passwordValue = document.querySelector('#user').value;
                if (password === passwordValue) {
                    window.location.href = 'http://maariv.co.il';
                } else {
                    tries++;
                    alert('Try again please.');
                }

                if (tries === 3) { // 3 is the border.
                    error++;
                }

                if (error === 1) {
                    window.location.href = 'http://microsoft.com';
                }
            };
        </script>
    </body>
</html>

我尝试这样做:

  1. 检查整个代码中的语法错误。
  2. === 更改为 == (我想,也许由于它是一个字符串,引号也被计算在内,当然我错了)。
  3. window.location.href = 'http://maariv.co.il', true;
  4. window.location.href 下添加 return false

作为一个初学者,我问,为什么这个条件只起作用一半?也就是说,积极的部分(than)不起作用,但消极的部分(else)起作用。

更新:

这只是一个练习。的确。这不会投入生产。在生产中,我应该存储密码并从数据库请求密码。

最佳答案

将以下行 let passwordValue = document.querySelector('#user').value; 放入“mybutton”的 onclick 内。

let tries = 0;
let error = 0;
let password = 'tiesto';

document.querySelector("#myButton").onclick = ()=> {

    let passwordInput = document.querySelector('#passwordInput').value;
    if (password === passwordValue) {
        window.location.href = 'http://maariv.co.il';
    } else {
        tries++;
        alert('Try again please.');
    }

    if (tries === 3) { // 3 is the border.
        error++;
    }

    if (error === 1) {
    window.location.href = 'http://microsoft.com';
    }
};
<form>
  Enter password to continue: <br>
  <input type="text" id="user" />
  <input type="button" id="myButton" value="Enter site" />
</form>

关于javascript - document.location 或 window.location.href 在条件的 if 部分不起作用,但在 else 部分起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935090/

相关文章:

regex - 来自 url 的 tumblr 用户名

url - 获取 YouTube 直播 URL

css - 有些导航链接有效,有些则无效。相对 URL 路径?

java - 有没有简单的小程序 url 生成器?

javascript - Play Framework : Passing renderArgs into Javascript functions?

javascript - 使用屏幕高度动态填充框

javascript - 缩放旋转的矩形并找到新的控制点和中心

html - Url 编码和 HTML 编码的区别

带有对象数组的 Javascript 范围

javascript - 滚动 DIV 元素的特定滚动条