ragnar_ok
@ragnar_ok

Как записать массив в LocalStorage?

Как в нижеуказанном коде записать наличие значения в input'ах в sessionStorage (localStorage)? Сейчас сохраняется только последнее значение. Смотреть код на JSFiddle

<script>
    $('#floor, #entrance, #apartment, #intercom').on('blur', function(e) {
      if ($(this).val()) {
        $(this).next('.custom-placeholder').toggleClass('completed', true);
        sessionStorage.setItem("PlaceholderCompleted", $(this).attr("id"));
      } else {
        $(this).next('.custom-placeholder').removeClass('completed');
      }
    });

    var PlaceholderCompletedId = sessionStorage.getItem("PlaceholderCompleted");
    if (PlaceholderCompletedId) {
      $("#" + PlaceholderCompletedId).siblings(".custom-placeholder").toggleClass('completed', true);
      console.log(PlaceholderCompletedId);
    }
</script>

<style>.completed {color: blue; font-weight:bold;}</style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>
      <div>
        <input id="apartment" type="text">
        <div class="custom-placeholder">Кв./офис</div>
      </div>
      <div>
        <input id="floor" type="text">
        <div class="custom-placeholder">Этаж</div>
      </div>
      <div>
        <input id="entrance" type="text">
        <div class="custom-placeholder">Подъезд</div>
      </div>
      <div>
        <input id="intercom" type="text">
        <div class="custom-placeholder">Код домофона</div>
      </div>
    </div>
  • Вопрос задан
  • 1030 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
var $inputs = $('#floor, #entrance, #apartment, #intercom');
$inputs.on('blur', function(e) {
  if ($(this).val()) {
    $(this).next('.custom-placeholder').toggleClass('completed', true);
  } else {
    $(this).next('.custom-placeholder').removeClass('completed');
  }
  sessionStorage.setItem("PlaceholderCompleted", JSON.stringify($inputs.filter(function() {
    return !!$(this).val();
  }).map(function() {
    return $(this).attr("id");
  }).get()));
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
LocalStorage таботает только с тестовыми значениями, поэтому массив преобразуете в json и сохраняете.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы