我正在尝试仅使用数组内部的对象在同一页面上设置一个简单的登录/注册系统。
jsbin.com/gidicovaga/edit?html,css,js,输出
有人可以指出代码中的问题吗?我真的不确定自己做错了什么,注册进展顺利,但没有登录。
答案 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