我使用以下代码验证表单中的密码。如果密码正确 - 将用户移至站点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>
===
更改为==
(我想,也许是因为它是一个字符串,引号也算在内,当然我错了)。window.location.href = 'http://maariv.co.il', true
; return false
window.location.href
醇>
作为一个初学者,我问,为什么这个条件只能用于一半?也就是说,正面部分(比)不起作用,但负面部分(否则)起作用。
这只是一个练习。确实。这不是生产。在生产中,我应该存储并从数据库请求密码。
答案 0 :(得分:1)
将以下行let passwordValue = document.querySelector('#user').value;
放入onclick of“mybutton”。
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>
答案 1 :(得分:0)
使用return
:
if (password === passwordValue) {
return window.location.href = 'http://maariv.co.il';
}
否则,该函数将执行到最后,您将到达第二个重定向,然后覆盖第一个重定向。