[英]Why are both my if statements activating?
我现在完全敬畏,我通常能够很快弄清楚这些东西,但这对我来说没有任何意义。
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);
由于某些原因,即使它们不符合规则,也会激活第一个if语句,并弹出页面重新加载/警报。
您的两个If语句均错误。 我认为您正在寻找的是:
if (user1.length <= 6 || pass1.length <= 6)
和
if (user1.length >= 7 && pass1.length >= 7)
当您在javascript中使用If时,任何包含值的东西都会返回true。 因此,如果您写:
if (user1.length)
它将始终返回true。 您需要记住||两侧的<= 6
希望这可以帮助 :)
user1.length对我来说可疑。 您确定它是布尔值吗? ||之前没有运算符或操作数。
如果user1.length不为零,则足以满足执行第一个if语句的条件。
如果另外pass1.length> = 7,那么还将执行第二条语句。
看似简单的逻辑语句可能很棘手,但是保持冷静和通过它们来处理事情是值得的。
我现在知道为什么这行不通了。 我现在有
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!"; }
工作正常。 谢谢 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.