我正在为我的网站制作登录系统。管理使用localStorage进行注册和登录工作(因此它将每个帐户的数据存储在数组中)
但是,如果他们错误地输入用户名或者不存在的用户名,我希望它显示错误[那么不在localStorage中]。
我设法为密码做了这个,输入的用户名是正确的,这是密码检查的代码:
else if (passwordLogin !== parse.password) {
message.innerHTML = "Incorrect account information!";
return;
}
^其中 passwordLogin 是他们在密码字段中输入的内容, parse 是一个解析localstorage用户名的函数,因此: JSON.parse(localStorage [ usernameLogin] - usernameLogin 是他们在用户名字段中输入的内容
现在我正在尝试为用户名执行相同操作。到目前为止,这是我最好的代码:
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
所以 usernameLogin 是他们在用户名字段中输入的内容。 我正在检查他们在localStorage中的输入并检查它是否是 undefined 。在localStorage中,每个帐户的键是用户名,值是一个包含所有详细信息的数组:{“username”:“Jordan”,“password”:“asd “} [这里的关键只是普通的乔丹]
您注意到此用户名和传递检查位于if和else if循环中。 if(用户名检查)不执行任何操作,但密码检查的代码在else if中有效(仅当输入的用户名存在且密码不匹配时才有效)
也许是
=== undefined
不正确。任何想法都赞赏:)
答案 0 :(得分:0)
检查undefined
和empty condtions
就足够了。
localStorage.hasOwnProperty('usernameLogin') &&
typeof localStorage.usernameLogin !== 'undefined' &&
localStorage.usernameLogin !== ''
您可以在解析值后检查其中的值来添加条件。
typeof JSON.parse(localStorage.usernameLogin) === 'object' &&
typeof JSON.parse(localStorage.usernameLogin).password === 'string'
JSON.parse(localStorage.usernameLogin).password === 'yourpassword'
答案 1 :(得分:-1)
尝试
if (!localStorage.getItem(usernameLogin)) {
message.innerHTML = "No such ninja username exists!";
}
或
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
确保usernameLogin
变量包含字符串。