2014-09-27 3 views
0

Привет, я попытался посмотреть в теме, как хранить объекты в localStorage, и сделал регистрацию пользователя с JSON и localStorage, и он работает (сохраняет идентификатор, имя пользователя и пароль) без повторного или перекрывающегося доступа пользователей.Как настроить адрес localStorage для входа?

Я хочу добавить функцию входа в систему, но у меня возникают проблемы с циклом в массиве и с таргетингом на ключ localStorage? (в данном случае User: number).

Вот код:

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, 
       password: this.password.value 
      }; 
      if (entry.id == 0) { 
       User.storeAdd(entry); 
      } 
     }, true); 


     User.$button_login.addEventListener("click", function(event) { 

      for (i = 0; i < window.localStorage.length; i++) {} 



     }, 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(); 

ответ

0

Не полагайтесь на length свойство window.localStorage. LocalStorage ведет себя как объект, а не как массив

Для того, чтобы перебирать ключи от LocalStorage, сделать

for(var key in window.localStorage){ 
    var item = window.localStorage.getItem(key); 
    //do something with item 
} 
Смежные вопросы