我已经用user_name登录做了一个localStorage,我已经将我的JSON数据(条目)的字符串解析为一个普通对象。用户:index未定义?
但是,如果我试图安慰登录entry.username让我的存储的用户还能得到“未定义”?
我怀疑是我的用户:指数代码是搞乱了entry.user_name?
var User = {
index: window.localStorage.getItem("User:index"),
$form: document.getElementById("userReg"),
$button_register: document.getElementById("registerUser"),
$button_login: document.getElementById("logIN"),
init: function() {
// initialize storage index
if (!User.index) {
window.localStorage.setItem("User:index", User.index = 1);
}
User.$form.addEventListener("submit", function(event) {
var entry = {
id: parseInt(this.id_entry.value),
user_name: this.user_name.value,
};
if (entry.id == 0) {
User.storeAdd(entry);
}
}, true);
User.$button_login.addEventListener("click", function(entry) {
for (var i = 0, len = localStorage.length; i < len; ++i) {
var key = localStorage.key(i);
var value = localStorage[key];
entry = JSON.parse(window.localStorage.getItem(key));
console.log(entry.user_name);
}
if (document.getElementById("firstName").value == entry.user_name) {
alert("You have logged in");
} else {
document.getElementById("negative").innerHTML = "Username does not match"
}
}, true);
},
storeAdd: function(entry) {
entry.id = User.index;
window.localStorage.setItem("User:index", ++User.index);
window.localStorage.setItem("User:" + entry.id, JSON.stringify(entry));
},
};
User.init();
你能告诉我们HTML并告诉我们你点击/键入了什么吗?也许做一个小提琴 – 2014-09-29 12:34:08
也似乎索引是从本地存储中读取的字段,然后在init方法中分配一个值。您是否尝试过只读取已赋值的值?所以你的init会在第一次设置index = 1。为什么要读取可能未定义的值并将其添加1? – xDaevax 2014-09-29 12:45:01
@LoganMurphy [的jsfiddle(http://jsfiddle.net/yv04x4mw/2/) – Hanshof 2014-09-29 14:07:47