我现在完全敬畏,我通常能够迅速解决这些问题,但这对我没有任何意义。
setTimeout(
function(){
if (user1.length || pass1.length <= 6) {
document.getElementById('verified').innerHTML="Error: Username or password too short!";
alert('Running');
setTimeout(function(){location.reload()},1000);
}
if (user1.length && pass1.length >= 7) {
document.getElementById('verified').innerHTML="You've been verified!";
}
}
,2000);
&#13;
由于某些原因,即使他们不符合规则,也会激活第一个if语句并弹出页面重新加载/警告。
答案 0 :(得分:1)
你的If语句都错了。我认为你在寻找的是:
if (user1.length <= 6 || pass1.length <= 6)
和
if (user1.length >= 7 && pass1.length >= 7)
当你在javascript中使用If时,任何持有值的东西都会返回true。 所以,如果你写:
if (user1.length)
它总会回归真实。你需要记住||
两边的&lt; = 6希望这有帮助:)
答案 1 :(得分:0)
user1.length看起来很可疑。你确定它的布尔值吗?在||。
之前没有运算符或操作数答案 2 :(得分:0)
这是因为这个条件
user1.length || pass1.length <= 6
如果user1.length
非零,则由于short-circuit evaluation,甚至不会检查第二部分。
您的意思是使用逻辑和&&
吗?
答案 3 :(得分:0)
如果user1.length非零,那么仅执行第一个if语句就足够了。
如果另外pass1.length&gt; = 7,那么第二个语句也将被执行。
看似简单的逻辑陈述可能很棘手,但保持冷静和通过它们的事情是值得的。
答案 4 :(得分:0)
我现在明白为什么这不起作用。我现在有
if (user1.length <= 6 || pass1.length <= 6) {
document.getElementById('verified').innerHTML="Error: Username or password too short!";
setTimeout(function(){location.reload()},1000);
}
if (user1.length >= 7 && pass1.length >= 7) {
document.getElementById('verified').innerHTML="You've been verified!";
}
&#13;
工作正常。谢谢:))