简单登录脚本的分配中的左侧无效

Invalid left-hand side in assignment for simple login script

本文关键字:无效 分配 登录脚本 简单      更新时间:2023-09-26

我必须为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 语句中的 = 更改为 ==,它将接受数组的最后一个有效登录,但不接受其他登录。

=是赋值运算符

==是相等运算符

你混淆了两者。你想要后者。否则,分配结果的值将返回值本身(通常是 true 值)。

根据评论,还有严格的相等运算符。对于=====之间的差异,这个答案会让你大吃一惊。