Есть форма, в нее пользователь вписывает данные и они сохраняются в localStorage
массиве под названием todo
. Данные вписанные в форму оказываются в ul li
списке. Я проверяю в консоли и они действительно добавляются в массив todo
, но после обновления страницы данные исчезают из списка li пропадает
и из массива todo
тоже. Я думаю проблема либо в самом начале кода, где создается массив, либо в dataObjectUpdated()
. Вопрос - как сделать, так чтобы данные сохранялись в массиве и refresh
страницы на них не влиял. Решение желательно на чистом js
var content = {
todo: [],
completed: [],
uncompleted: []
};
var create = localStorage.setItem('todoList', JSON.stringify(content));
var data = JSON.parse(localStorage.getItem('todoList'));
var button = document.getElementById('button');
button.onclick = function() {
var input = document.getElementById('input').value;
if (input) {
addItem(input);
}
};
var input = document.getElementById('input');
input.onkeypress = function(e) {
if (e.keyCode === 13) {
button.click();
return false;
}
};
renderTodoList();
function renderTodoList() {
for (var i = 0; i < data.todo.length; i++) {
var value = data.todo[i];
addItemToDOM(value);
}
}
function addItem(value) {
addItemToDOM(value); // функции нет (для экономии места)
document.getElementById('input').value = '';
data.todo.push(value);
dataObjectUpdated();
}
function dataObjectUpdated() {
localStorage.setItem('todoList', JSON.stringify(data));
}
<div id="container">
<header>
<h1>ToDoList</h1>
</header>
<div id="main">
<input id="input" maxlength="40" type="text" placeholder="New task">
<button id="button">ADD</button>
<button id="clear_all">Clear all</button>
</div>
<div id="list">
<ul id="include"></ul>
</div>
</div>
Проследите логику того, что делается в этих трех строчках:
var content = {todo:[], completed:[], uncompleted:[]};
var create = localStorage.setItem('todoList', JSON.stringify(content));
var data = JSON.parse(localStorage.getItem('todoList'));
Вы создаете пустой content
, сохраняете его в localStorage
и тут же читаете оттуда в data
.
Вот как надо:
var data = {todo:[], completed:[], uncompleted:[]};
var stored = localStorage.getItem('todoList');
if (stored)
data = JSON.parse(stored);
Нужно динамически рендерить элементы в браузереС сервера приходит верстка в юникоде
Здравствуйте, не работает изменение стиля метки, а именно свойство preset
Нужно чтобы функция возвращала false если в password найдено одно из значений linesArray, чтобы цикл проверял каждое значение массива, но почему что...
По условию нужно создать функцию addClass(obj, cls), которая добавляет в список класс cls, но только если его там еще нет и она не должна добавлять лишних...