###前提・実現したいこと
「save」を押した後、categoryとdiaryのデータを保存して、リスト表示させたい
###発生している問題・エラーメッセージ
保存ができなくなった。
###該当のソースコード
<!DOCTYPE HTML> <html> <head> //略// </head> <body> <!-- Add Diary Page --> <div data-role="page" id="AddPage"> <header data-role="header" data-position="fixed" data-theme="c"> <h1>Add Diary</h1> </header> <section data-role="content"> <p> <label for="Category">Category:</label> <input type="search" id="Category" autocomplete="on" list="Categories"> <datalist id="Categories"> <option value=""></option> <option value="仕事">work</option> <option value="趣味">hobby</option> <option value="友人">friend</option> <option value="旅行">travel</option> <option value="記念日">anniversary</option> <option value="その他">other</option> </detalist> </p> <p> <label for="Diary">Diary:</label> <textarea id="Diary" style="height: 6em"></textarea> </p> <a data-role="button" data-icon="check" id="SaveBtn">Save</a> </section> </div> <!-- Diary List Page --> <div data-role="page" id="DiaryListPage"> <header data-role="header" data-position="fixed" data-theme="c"> <h1>Diary List</h1> <a href="#AddPage" data-icon="plus" class="ui-btn-right">Write</a> </header> <section data-role="content"> <ul id="ListView" data-role="listview" data-collapsed-icon="arrow-r" data-expanded-icon="arrow-d" data-split-icon="delete"> </ul> </section> </div> <script src="components/loader.js"></script> <script src="js/diary.js"></script> <script src="js/app.js"></script> <script src="js/cssua.min.js"></script> </body> </html> ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・- //以下がapp.jsとなります// ///// Save diary and return to list page function onSaveBtn() { var diary = $("#Diary").val(); if (diary != '') { // Save to local storage addDiary(diary); // Clear form $("#Diary").val(""); // Initialize list page initListPage(); } $.mobile.changePage("#DiaryListPage", { reverse: true }); } ///// Initialize list page function initListPage() { $("#ListView").empty(); var list = getDiaryList(); for (var i in list) { var diary = list[i]; var d = new Date(diary.time); var date = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes(); if(d.getMinutes() < 10){ var getminutes = '0'+ d.getMinutes(); date = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate() + " " + d.getHours() + ":" + getminutes; } $li = $("<li><a href='#' class='show'><h3></h3><p></p></a><a href='#' class='delete'>Delete</a></li>"); $li.data("id", diary.id); $li.find("h3").text(date); $li.find("p").text(diary.text); $("#ListView").prepend($li); } if (list.length == 0) { $li = $("<li>No Diary found</li>"); $("#ListView").prepend($li); } $("#ListView").listview("refresh"); // Call refresh after manipulating list } ///// Called when app launch function onReady() { initListPage(); $("#SaveBtn").click(onSaveBtn); $("#ListView").on("click", "a.show", onShowLink); $("#ListView").on("click", "a.delete", onDeleteLink); } $(onReady); // on DOMContentLoaded ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・-・ー・- //以下がdiary.jsとなります// ///// Return list of diary function getDiaryList() { var list = localStorage.getItem("Diary_list"); if (list == null) { return new Array(); } else { return JSON.parse(list); } } ///// Save diary function saveDiaryList(list) { try { localStorage.setItem("Diary_list", JSON.stringify(list)); } catch (e) { alert('Error saving to storage.'); throw e; } } ///// Add diary function addDiary(text) { var list = getDiaryList(); var time = new Date().getTime(); list.push({ id: time, time: time, text: text }); saveDiaryList(list); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/15 10:12
2017/11/15 23:18 編集