Como faço para salvar no armazenamento local via vanilla JS

Joshua Wolfe

Não consigo fazer o armazenamento local funcionar. O objetivo é manter os itens da lista de tarefas na página após a atualização. Toda vez que eu atualizo a página, puf. A sintaxe parece correta.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TODO LIST</title>
    <link rel="stylesheet" href="./styles/style.css">
</head>
<body>
    <main id="main">
        <h1>THE TO-DO LIST:</h1>
        <form action="" id="add-task">
            <label for="todo">Add Task:</label>
            <input type="text" id="todo">
            <button>Add Task</button>
        </form> 
        <p class="center">To complete task, click on text.</p>            
        <ul id="task-list">
            <li class="task-complete">example_1 <button>Remove Task</button></li>           
        </ul>
    </main>
    <script src="./script/index.js"></script>
</body>
</html>
const form = document.querySelector('#add-task');
const input = document.querySelector('#todo');
const taskList = document.querySelector('#task-list');
let taskID = 0;

taskList.addEventListener('click', function(e) {
    if (e.target.tagName === 'BUTTON') {
        e.target.parentElement.remove();
        let inputTask = document.getElementById('todo');
        localStorage.setItem('email', inputTask.value);
    } else if (e.target.tagName === 'LI') {
        e.target.classList.toggle('task-complete');
    }
});

form.addEventListener('submit', function(e) {
    e.preventDefault();
    console.log(input.value);
    const newTask = document.createElement('li');
    const removeBtn = document.createElement('button');
    let savedInput = input.value;
    removeBtn.innerText = 'Remove Task';
    newTask.innerText = input.value;
    newTask.appendChild(removeBtn);
    taskList.appendChild(newTask);

    input.value = '';
    console.log(localStorage);
});
.task-complete {
    text-decoration: line-through;
}
Kaashan

Existem 2 problemas com o seu código.

Primeiro, você não está salvando cada tarefa inserida pelo usuário no envio do formulário. Se você deseja salvar cada tarefa inserida pelo usuário em localStorage, modifique o manipulador de envio de formulário conforme abaixo:

form.addEventListener('submit', function(e) {
            e.preventDefault();
            const newTask = document.createElement('li');
            const removeBtn = document.createElement('button');
            let savedInput = input.value;
            removeBtn.innerText = 'Remove Task';
            newTask.innerText = input.value;
            newTask.appendChild(removeBtn);
            taskList.appendChild(newTask);
            localStorage.setItem('Task'+taskID, input.value);
            taskID++;
            input.value = '';
        });

Em segundo lugar, você não está utilizando os dados salvos anteriormente em localStorage para mostrar a lista de tarefas que foram inseridas pelo usuário antes de a página ser carregada. Você pode conseguir isso usando o código de função abaixo:

function showSavedToDos() {
            const keys = Object.keys(localStorage);
            let i = keys.length;

            while (i--) {
                const newTask = document.createElement('li');
                const removeBtn = document.createElement('button');
                removeBtn.innerText = 'Remove Task';
                newTask.innerText = localStorage.getItem(keys[i]);
                newTask.appendChild(removeBtn);
                taskList.appendChild(newTask);
            }
        }
        showSavedToDos();

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

NODE.JS Como faço para salvar dados JSON sem encher meu armazenamento

Como salvar no armazenamento local

Como salvar no armazenamento local

Como transferir objetos para o Armazenamento de Blob do Azure sem salvar o arquivo no armazenamento local?

Como faço para armazenar dados no armazenamento local usando Angularjs?

Como faço para armazenar vários itens no armazenamento local?

Como faço para atualizar / alterar valores no armazenamento local?

Como faço para salvar JSON no arquivo de texto local

Como salvar o armazenamento local do cipreste reagir

Como salvar o "status do jogo" no armazenamento local?

Como salvar a guia atual ao atualizar usando o armazenamento local

não consigo salvar itens no armazenamento local em react js

Kotlin: como salvar imagens da Internet para o armazenamento interno

Como enviar valores para o armazenamento local?

flutter salvar modelo como json no armazenamento local

Como salvar no armazenamento local usando Flutter?

Como salvar elementos criados dinamicamente no armazenamento local

Como posso salvar a imagem no armazenamento local?

Como faço para usar o método de armazenamento para que ele possa salvar dados em minha tabela

Como faço para acessar o armazenamento em nuvem do Google do aplicativo python local?

como faço para resolver o problema com armazenamento local e javascript

Como faço para definir uma chave predefinida antes de definir o armazenamento local?

Como faço para colocar o texto no armazenamento local no slide do controle deslizante de intervalo?

Como salvar a imagem enviada para armazenamento no laravel?

Salvar token no armazenamento local usando o nó

Salvar autenticação no armazenamento local do navegador

como salvar e obter dados para armazenamento local em react native?

Como salvar minhas matrizes para armazenamento local com número específico?

como enviar todos os valores do arquivo txt para o armazenamento local usando o angular js