我必须为 js 类构建一个简单的登录脚本。
我无法让循环工作。每次我输入任何信息时,它都会给我“作业中的左侧无效”
当单击登录按钮时,getData 函数会获取框的值,然后将它们传递给登录函数来检查数组。这就是脚本停止的地方。如果我将 if 语句中的 = 更改为 == ,它将接受数组的最后一个有效登录,但不会接受其他登录。
我做错了什么?
<script type="text/javascript">
var userLogins = [{user:"user1", password:"pass1"},{user:"user2", password:"pass2"},{user:"user3", password:"pass3"}]
var success = null;
function logon(user, pass) {
userok = false;
for (i = 0; i < userLogins.length; i++)
{
if(pass = userLogins[i].password && user = userLogins[i].user )
{
success = true;
}
else
{
success = false;
}
}
secret(success);
}
function getData() {
var user = document.getElementById("userid").value;
var password = document.getElementById("password").value;
logon(user, password);
}
function secret(auth){
if(auth)
{
show('success');
hide('login');
}
else
{
show('error');
hide('login');
}
}
function show(show) {
document.getElementById(show).className = "show";
}
function hide(hide) {
document.getElementById(hide).className = "hide";
}
最佳答案
If I change the = in the if statement to == it will accept the last valid login f the array but none of the others.
==
是 equality operator
你把两者混淆了。你想要后者。否则,您分配的值将返回该值本身(通常是true值)。
根据评论,还有严格相等运算符。对于 ==
和 ===
之间的区别 this answer会让你大吃一惊。
关于javascript - 简单登录脚本分配的左侧无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595062/