チェックボックスの値をローカルストレージに保存する

RedStapler

ここではコードスニペットを実行できないため、これまでのチェックリストは次のようになっています。私は自分のためにチェックリストのChromeアプリに取り組んでおり、あなたの助けが欲しいです。基本的に、チェックボックスのステータスを保存する方法がわかりません。チェックボックスをオンにしてページを更新した場合、チェックを入れたままにしておきます。しかし、私はそれをコーディングできないようです。それを行う方法はありますか?ありがとうございました!!

編集:私はhtmlを追加しました、それは私の投稿がほとんどコードであり、いくつかのテキストを追加する必要があるというメッセージを私に与えます、それでここで私はこの要件を満たすためにもう少し書いています。これを読む必要はありません。助けてくれてありがとう、編集が遅くなってすみません

function get_todos() {
    var todos = new Array;
    var todos_str = localStorage.getItem('todo');
    if (todos_str !== null) {
        todos = JSON.parse(todos_str); 
    }
    return todos;
}
 
function add() {
    var task = document.getElementById('task').value;
 

    var todos = get_todos();
	
    todos.push(task);
    localStorage.setItem('todo', JSON.stringify(todos));
 
    show();
 
    return false;
}
 
function remove() {
    var id = this.getAttribute('id');
    var todos = get_todos();
    todos.splice(id, 1);
    localStorage.setItem('todo', JSON.stringify(todos));
 
    show();
 
    return false;
}
 
function show() {
    var todos = get_todos();
 
    var html = '<ul>';
    for(var i=0; i<todos.length; i++) {
        html += '<li>' + '<input type="checkbox" id="checkbox">' + todos[i] + '<button class="remove" id="' + i  + '">delete</button></li>' ;
    
	
	};
    html += '</ul>';
	
 
    document.getElementById('todos').innerHTML = html;
	
	
	
	
    var buttons = document.getElementsByClassName('remove');
    for (var i=0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', remove);
    };
}



document.getElementById('add').addEventListener('click', add);
show();
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
</head>
<body>


<style>
html,body,h1,h3,h4,h6 {font-family: "Roboto";font-size: 24px; sans-serif}
h2 {font-family: "Roboto";font-size: 36px; sans-serif}
h5 {font-family: "Roboto";font-size: 28px; sans-serif}
</style>



<input id="task"><button id="add">Add</button>
<hr>
<div id="todos"></div>


<script src="todo.js"></script>


   
</body>
</html>

JO3-W3B-D3V

他の誰も答えを出していないので、私は自分の潜在的な解決策を投入すると思いました。なぜか、シンプルで読みやすいなどの理由で、機能的なスタイルを採用しました...

PS

Stack Overflowでは、スニペットの実行時にローカルストレージにアクセスできないため、フォールバック変数を含めました。

let fallback = [];
const $e = query => document.querySelector(query);


// Return a todo list.
const getToDoList = () => {
  let data = null;
  
  try {
    data = JSON.parse(localStorage.getItem('todo'));
  } catch (e) {
    data = fallback;
  }
  
  return data == null || Array.isArray(data) == false ? [] : data;
};


// Set the todo list.
const setToDoList = (data) => {
  try {
    localStorage.setItem('todo', JSON.stringify(data));
  } catch (e) {
    fallback = data;
  }
};


// Add a task to the todo list.
const addToDo = () => { 
  const array = getToDoList();
  array.push({value: $e("#task").value, checked: false});
  setToDoList(array);
}; 


// Remove a task from the todo list.
const removeToDo = index => {
  const array = getToDoList();
  array.splice(index, 1);
  setToDoList(array);
};


// Allow for the ability to remove an item from the todo list & other stuff..
const dispatchListEvents = () => {
  document.querySelectorAll('#app ul li span').forEach(span => {
    span.onclick = () =>  {
      removeToDo(span.parentElement.getAttribute('data-index'));
      render();
    }
  });
  
  document.querySelectorAll('#app ul li input').forEach(input => {
    input.onclick = () =>  {
      const array = getToDoList();
      const object = array[input.parentElement.getAttribute('data-index')];
      object.checked = ! object.checked;
      setToDoList(array);
      render();
    }
  });
};


// Render the todo list.
const render = () => {
  let index = 0;
  const template = item => `<li data-index="${index++}">` +
      `<input type="checkbox" ${item.checked ? 'checked' : ''} />` +
      `${item.value} <span>X</span></li>`;
  
  const re = new RegExp('</li>,', 'g'), replacement = '</li>';
  const html = `<ul>${getToDoList().map(i => template(i))}</ul>`;
  $e("#app").innerHTML = `${html.replace(re, replacement)}`;
  dispatchListEvents();
};


// Allow the user to add a task to the todo list.
const addToListClickHandler = () => {
  let result = $e("#task").value.replace(/\ /g, '').length > 0 ? addToDo() : null;
  $e("#task").value = null; // Always null as addToDo returns null.
  render();
};


// The function that will be fired when the DOM is ready.
const ready = () => {
  render(); // Initial render.
  $e("#addToList").addEventListener('click', addToListClickHandler);
};


// An insanely lazy implementation of $(document).ready.
const delay = 250;
const fakeOnReady = setTimeout(ready, delay);
body {
  font-family: Arial, Helvetica, sans-serif;
}

#app ul li {
  max-width: 150px;
}

#app ul li span {
  float: right;
  color: red;
}

#app ul li span:hover {
  cursor: pointer;
}
<h1>To Do List</h1>

<section>
  <h2>Add Task</h2>
  <input id="task" placeholder="Task..."/>
  <input type="button" id="addToList" value="Add"/>
</section>

<hr/>

<section>
  <h2>Tasks</h2>
  <div id="app">
    <!-- Area for the DHTML. -->
  </div>
</section>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のチェックボックス入力をローカルストレージに保存する

分類Dev

ダークモードのチェックボックスはローカルストレージに保存する必要があります

分類Dev

チェックボックス「チェック済み」のプロパティがローカルストレージに保存される情報

分類Dev

チェックボックスの値をローカルストレージからフォームに挿入し直す

分類Dev

ページのリロード時にチェックボックスの値を保存するExtJS

分類Dev

チェックボックスのローカルストレージ

分類Dev

複数のアイテムのローカルストレージでチェックボックス「チェック済み」を保存

分類Dev

Javascript-チェックボックスとローカルストレージ。一致する値がある場合は、チェックボックスをオンにします

分類Dev

複数の入力ボックスの値をローカルストレージに保存するにはどうすればよいですか?

分類Dev

ローカルストレージ/チェックボックス/値を表示しません

分類Dev

複数のチェックボックス値をレールに保存する方法は?

分類Dev

チェックボックスがオフのステージを保存していないローカルストレージ

分類Dev

リストからすべてのチェック済みアイテムをローカルストレージに保存する方法。(Javascript)

分類Dev

リーフレットカスタムチェックボックスコントロールを作成する

分類Dev

チェックボックスの値をユーザーのアカウントに保存します

分類Dev

AngularJSを使用してチェックボックスの状態をローカルストレージに保存するにはどうすればよいですか?

分類Dev

チェックボックス、ローカルストレージのラジオボタン

分類Dev

選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

分類Dev

ローカルストレージをチェックするときにダークモードのチェックボックスが動かなくなる

分類Dev

チェックボックスのチェックされた値を角度のあるオブジェクトのブール属性にバインドする

分類Dev

チェックされたラジオボタンの値を、純粋なJavascriptを使用してローカルストレージにどのように保存しますか?

分類Dev

ページロード時にチェックボックスの値とステータスを保存する方法

分類Dev

特定の名前と値で特定の形式でローカルストレージに保存されたデータからラジオボタンをチェックします

分類Dev

動的に作成されたチェックボックス値をLaravelの別のテーブルに保存する

分類Dev

[すべて選択解除] ボタンを使用してローカル ストレージからチェックボックスを削除する

分類Dev

値をWooCommerceの既存のフィールドにマージするチェックアウトカスタムフィールドを保存します

分類Dev

チェックボックスとIDをテーブルに追加しますか?ローカルストレージ

分類Dev

drupal 7:チェックボックスのステータスをブロック構成に保存する

分類Dev

リストボックスにチェックボックスコントロールを追加する

Related 関連記事

  1. 1

    複数のチェックボックス入力をローカルストレージに保存する

  2. 2

    ダークモードのチェックボックスはローカルストレージに保存する必要があります

  3. 3

    チェックボックス「チェック済み」のプロパティがローカルストレージに保存される情報

  4. 4

    チェックボックスの値をローカルストレージからフォームに挿入し直す

  5. 5

    ページのリロード時にチェックボックスの値を保存するExtJS

  6. 6

    チェックボックスのローカルストレージ

  7. 7

    複数のアイテムのローカルストレージでチェックボックス「チェック済み」を保存

  8. 8

    Javascript-チェックボックスとローカルストレージ。一致する値がある場合は、チェックボックスをオンにします

  9. 9

    複数の入力ボックスの値をローカルストレージに保存するにはどうすればよいですか?

  10. 10

    ローカルストレージ/チェックボックス/値を表示しません

  11. 11

    複数のチェックボックス値をレールに保存する方法は?

  12. 12

    チェックボックスがオフのステージを保存していないローカルストレージ

  13. 13

    リストからすべてのチェック済みアイテムをローカルストレージに保存する方法。(Javascript)

  14. 14

    リーフレットカスタムチェックボックスコントロールを作成する

  15. 15

    チェックボックスの値をユーザーのアカウントに保存します

  16. 16

    AngularJSを使用してチェックボックスの状態をローカルストレージに保存するにはどうすればよいですか?

  17. 17

    チェックボックス、ローカルストレージのラジオボタン

  18. 18

    選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

  19. 19

    ローカルストレージをチェックするときにダークモードのチェックボックスが動かなくなる

  20. 20

    チェックボックスのチェックされた値を角度のあるオブジェクトのブール属性にバインドする

  21. 21

    チェックされたラジオボタンの値を、純粋なJavascriptを使用してローカルストレージにどのように保存しますか?

  22. 22

    ページロード時にチェックボックスの値とステータスを保存する方法

  23. 23

    特定の名前と値で特定の形式でローカルストレージに保存されたデータからラジオボタンをチェックします

  24. 24

    動的に作成されたチェックボックス値をLaravelの別のテーブルに保存する

  25. 25

    [すべて選択解除] ボタンを使用してローカル ストレージからチェックボックスを削除する

  26. 26

    値をWooCommerceの既存のフィールドにマージするチェックアウトカスタムフィールドを保存します

  27. 27

    チェックボックスとIDをテーブルに追加しますか?ローカルストレージ

  28. 28

    drupal 7:チェックボックスのステータスをブロック構成に保存する

  29. 29

    リストボックスにチェックボックスコントロールを追加する

ホットタグ

アーカイブ