编辑localStorage用户?

您好我正在尝试使用localStorage编辑用户,但似乎无法将我的用户信息的值解析为我的“EditUser”表单的输入字段。

我已经读过应该使用set / getItem(),但尝试使用我的User:index但没有成功。

如何编辑通过localStorage登录的当前用户?

小提琴示例 http://jsfiddle.net/f3dsfpob/6/

HTML

Login

JAVASCRIPT

 var User = { index: window.localStorage.getItem("User:index"), $form: document.getElementById("userReg"), $button_register: document.getElementById("registerUser"), $button_login: document.getElementById("logIN"), init: function () { if (!User.index) { window.localStorage.setItem("User:index", User.index = 1); } User.$form.addEventListener("submit", function (e) { var entry = { id: parseInt(this.id_entry.value), user_name: this.user_name.value, password: this.password.value, e_mail: this.e_mail.value }; if (entry.id == 0) { User.storeAdd(entry); } e.preventDefault(); }, true); User.$button_login.addEventListener("click", function (e) { for(var i = 1; i < User.index; i++) { var key = "User:" + i; var entry = JSON.parse(localStorage[key]); console.log("entry : ", key, entry); if (document.getElementById("firstName").value == entry.user_name && document.getElementById("passWord").value == entry.password) { alert("Logged in as"+" "+entry.user_name); document.getElementById("loginResult").innerHTML = "Logged in as"+" "+entry.user_name; console.log("entry : ", key, entry); LoginUser(); e.preventDefault(e); } else { document.getElementById("negative").innerHTML = "Username or Password does not match"; } } }); }, storeAdd: function (entry) { entry.id = User.index; window.localStorage.setItem("User:index", ++User.index); window.localStorage.setItem("User:" + entry.id, JSON.stringify(entry)); document.getElementById("registerResult").innerHTML = "Registration succesful"; return; } }; User.init(); 

你有一些错误。

 e_mail: this.e_mail.value 

没有电子邮件字段。 这会引发错误并使您的表单提交处理程序不会阻止默认。

顺便说一句 – 将用户信息存储在LocalStorage中可能不是一个好主意。