Javascript document.location或window.location.href赢得';在条件的if部分不起作用,但在else部分起作用

Javascript document.location或window.location.href赢得';在条件的if部分不起作用,但在else部分起作用,javascript,url,Javascript,Url,我使用以下代码验证表单中的密码。如果密码正确-将用户移动到站点X。如果密码不正确(尝试3次后),将用户移动到站点Y 出于某种原因,它只适用于站点Y 我的代码: 输入密码以继续: 设t=0; 设误差=0; 让password='tiesto'; document.querySelector(“#myButton”).onclick=()=>{ 让passwordValue=document.querySelector('#user').value; 如果(密码===密码值){ window.lo

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

出于某种原因,它只适用于站点Y

我的代码:

输入密码以继续:
设t=0; 设误差=0; 让password='tiesto'; document.querySelector(“#myButton”).onclick=()=>{ 让passwordValue=document.querySelector('#user').value; 如果(密码===密码值){ window.location.href=http://maariv.co.il'; }否则{ 尝试++; 警惕('请再试一次'); } 如果(trys==3){//3是边界。 错误++; } 如果(错误===1){ window.location.href=http://microsoft.com'; } };
我试着做:
  • 检查所有代码中的语法错误
  • ==
    更改为
    =
    (我想,可能是因为它是一个字符串,引号也算在内,当然我错了)
  • window.location.href=http://maariv.co.il,正确
  • 窗口.location.href下添加
    返回false
  • 作为一个初学者,我会问,为什么这个条件只在半小时内有效?也就是说,积极部分(than)不起作用,但消极部分(else)起作用

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

    使用
    返回

    if (password === passwordValue) {
        return window.location.href = 'http://maariv.co.il';
    }
    

    否则,函数将执行到底,您将到达第二个重定向,该重定向将覆盖第一个重定向。

    放置以下行
    let passwordValue=document.querySelector(“#user”).value单击“mybutton”的内部

    let trys=0;
    设误差=0;
    让password='tiesto';
    document.querySelector(“#myButton”).onclick=()=>{
    设passwordInput=document.querySelector(“#passwordInput”).value;
    如果(密码===密码值){
    window.location.href=http://maariv.co.il';
    }否则{
    尝试++;
    警惕('请再试一次');
    }
    如果(trys==3){//3是边界。
    错误++;
    }
    如果(错误===1){
    window.location.href=http://microsoft.com';
    }
    };
    
    
    输入密码以继续:

    但是。。。这太容易破解了。只要看看你的代码,你网站上的任何人都会知道密码是“tiesto”。告诉我这只是一个测试,这段代码不会投入生产。这只是一个练习。的确这不会投入生产。在生产中,我应该从数据库中存储并请求密码。只有在您尝试了3次错误后,它才会进入另一个重定向。在第一次或第二次尝试时输入正确的密码仍应有效。建议从第一个
    if
    内部返回不会有任何区别,因为它不会首先进入另一个
    if
    s。我很好奇,如果你是对的,OP为什么会接受我的答案,@James。(我相信你是)好地方。再解释一下为什么这是必要的,这将是一个更好的答案!我没有看到任何onload函数。因此,当页面加载时,
    passwordValue
    将为空,并在按钮单击中使用相同的值。我将下面的代码移到了onclick,以便在单击按钮时捕获并验证输入值。它不起作用。即使我把它移到那里,同样的问题也会发生。实际上,原始代码是这样的…我测试过,它在Chrome和Edge中工作(在IE 11中不工作,因为它抱怨
    ()=>
    (语法错误)。请从开发者控制台验证错误消息是什么以及
    密码值
    字段的值。
    if (password === passwordValue) {
        return window.location.href = 'http://maariv.co.il';
    }