使用对象和数组进行JS登录/注册

时间:2018-12-16 15:45:05

标签: javascript

我正在尝试仅使用数组内部的对象在同一页面上设置一个简单的登录/注册系统。

jsbin.com/gidicovaga/edit?html,css,js,输出

有人可以指出代码中的问题吗?我真的不确定自己做错了什么,注册进展顺利,但没有登录。

2 个答案:

答案 0 :(得分:0)

您有一个错字userename,如果输入成功,您就不会返回,并且总是打alert("wrong username")

更新的代码:

var users = [{}]

//Register
document.getElementById('registerButton').onclick = function() {
  var newUsername = document.getElementById('registerName').value
  var newPassword = document.getElementById('registerPassword').value
  users.push({ username: newUsername, password: newPassword })
}
//Login
document.getElementById('loginButton').onclick = function() {
  var username = document.getElementById('loginName').value
  var password = document.getElementById('loginPassword').value
  for (var i = 0; i < users.length; i++) {
    if (username == users[i].username) {
      if (password == users[i].password) {
        document.getElementById('loginResult').innerHTML = 'Success!'
        return
      } else {
        alert('wrong password')
      }
    }
  }

  alert('wrong username')
}

答案 1 :(得分:0)

您正在警告该消息,它中断了for循环,并且不允许在users数组上进行任何进一步的迭代。首先,只需将alert替换为console.log

然后您在下面的行中输入错误

if(username == users[i].userename) {

users[i].userename应该是users[i].username