@Artur937
junior

Почему функции записи в localStorage при первой загрузке страницы не срабатывают?

Необходимо запомнить выбранные пользователем checkbox (с классом stat_inp) и введенный текст в textarea.

Проблема возникает именно при первой загрузке страницы. Изначально отмеченные checkbox и написанный текст в textarea улетучиваются( Со второй загрузки функции работают. В чем дело? Помогите исправить.

< code lang="javascript">
 (function(b) {
            var e = document.querySelectorAll(b),
                a = localStorage.getItem(b),
                a = (a = JSON.parse(a)) || (a = {}, localStorage.setItem(b, JSON.stringify(a)));
            [].forEach.call(e, function(c, d) {
                void 0 !== a[d] && (c.checked = a[d]);
                c.addEventListener("change", function() {
                    a[d] = c.checked;
                    localStorage.setItem(b, JSON.stringify(a))
                })
            })
		})(".stat_inp<?php echo $test['id']; ?>");
		
		

                    var elements_ta = document.querySelectorAll('textarea');
                    
                    function checkValidity() {};
                    
                    for (i=0; i<elements_ta.length; i++) {
                     (function(element) {
                       var id = element.getAttribute('id');
                       element.value = localStorage.getItem(id); // обязательно наличие у элементов id
                       element.oninput = function() {
                        localStorage.setItem(id, element.value);
                         checkValidity();
                       };
                     })(elements_ta[i]);
                    }

  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Вангую, что JSON.parse падает с ошибкой, когда localStorage пустой.
Консоль разработчика Вам в помощь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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