关于这个问题,我有两个问题:
1 - 当我做if (nickname in localStorage)
它是否有效?因为每次我运行代码都不起作用。
2 - 我正在尝试在多个页面中验证表单,但每次我想保存一个昵称或者保存另一个昵称的地方。我已经尝试添加一个可数变量,但它仍然无效。这样做的最佳方法是什么?
这是我的三种形式中的两种形式的代码:
var k = 0;
function main() {
var buttonregister = document.getElementById("next");
var buttonlogin = document.getElementById("nextlogin");
var buttonsignin = document.getElementById("nextsignin");
if(buttonregister != null) {
buttonregister.addEventListener("click", createaccount);
} else if (buttonlogin != null) {
buttonlogin.addEventListener("click", submit);
}
}
function submit() {
var login = document.login;
var nickname = login.nickname.value;
if (nickname in localStorage) {
alert('The nickname ' + nickname + ' is already in use.');
} else {
localStorage.setItem("username"+k, nickname);
localStorage.setItem("password"+k, "");
localStorage.setItem("email"+k, "");
k++;
}
login.reset();
}
function createaccount() {
var register = document.register;
var nickname = register.nickname.value;
var password = register.password.value;
var email = register.email.value;
if (nickname in localStorage) {
alert('The nickname ' + nickname + ' is already in use.')
} else {
localStorage.setItem("username"+k, nickname);
localStorage.setItem("password"+k, password);
localStorage.setItem("email"+k, email);
k++;
}
register.reset();
}
document.addEventListener("DOMContentLoaded", function(event) {main()});
in
运算符返回键,而不是值。所以你问的是localStorage是否包含一个等于nickname
中存储的值的键。我不认为这是基于随后的alert()
的意图。此外,您从未设置nickname
localStorage属性,因此无论如何测试都没有实际意义。