Задать вопрос
@ForSureN1
frontend dev

Почему записывается только последний объект в хранилище?

Добрый день, нужно реализовать сохранение состояние radiobutton'ов в localstorage, по клику на радиобатон, получаю его состояние и вывожу все имеющиеся на странице, далее сохраняю эти объекты в один объект, и сохраняю в localstorage, но в LocalStorage попадает самый последний radiobutton на странице.
Заранее благодарю.
//Save checkbox reload page
  const test_container = document.querySelector('.general_test_slider')
  let checkInput = document.querySelectorAll('.question-row input')
  function requestCheckBox() {
    let checkBoxValue = {};
    for (let i = 0; i < checkInput.length; i++) {
      checkInput[i].addEventListener('click', saveCondition);
      console.log(checkBoxValue)
    }


    function saveCondition() {
      for(let i = 0; i < checkInput.length; i++) {
        checkBoxValue['checked'] =  checkInput[i].checked;
        console.log(checkBoxValue)
        saveCheckBox();
      }
    }

    function saveCheckBox() {
      localStorage.setItem('checkBox', JSON.stringify(checkBoxValue))
    }

  }

  if(test_container) {
    requestCheckBox();
  }
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
zkrvndm
@zkrvndm
Архитектор решений
localStorage.setItem('checkBox', JSON.stringify(checkInput));
save = localStorage.getItem('checkBox');
console.dir(save);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы на каждой итерации цикла перезаписываете одно и то же поле объекта.
checkBoxValue['checked'] = checkInput[i].checked;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы