【发布时间】:2019-04-02 20:39:39
【问题描述】:
我正在构建一个在线子弹日记,页面上有大量输入。输入不在元素中。
我想将所有输入保存到本地存储。加载页面时可以查看输入。我不想要“提交”按钮,除非“提交”按钮是唯一的选择。
下面的代码包含可能导致程序崩溃的错误。请帮助修复错误。
//here are my inputs
let eventInputList = [];
let calendarInputList = [];
let checkInputList = [];
let taskInputList = [];
let weekFormDateOne = document.getElementById("week-date-one");
let weekFormDateTwo = document.getElementById("week-date-two");
let textInputList = document.getElementsByTagName("textarea");
const getArrayElements = (array) => {
for(let i = 0; i < array.length; i++){
return array[i];
};
};
//here is my variable containing all the input values
let allInputsValues = monthInput.value +
getArrayElements(eventInputList) + getArrayElements(calendarInputList)
+ getArrayElements(checkInputList) + getArrayElements(taskInputList) +
weekFormDateOne.value + weekFormDateTwo.value +
getArrayElements(textInputList);
//here is my localStorage function
const saveAllEntries = () => {
localStorage.setItem("allInputs", JSON.stringify(allInputsValues));
};
window.addEventListener("input", saveAllEntries);
const loadAllEntries = () => {
localStorage.getItem("allInputs");
};
window.addEventListener("load", loadAllEntries);
【问题讨论】:
-
请解释一下
doesn't work的意思 -
这意味着代码中没有错误,至少控制台似乎没有看到任何错误,但是当我在输入中输入内容并刷新页面时,我输入的内容消失了。
-
您没有将
loadAllEntries函数中localStorage.getItem("allInputs")的结果分配给变量或使用它来填充屏幕输入。从 localStorage 检索数据后,您必须对其进行处理,例如与您的let allInputValues = monthInput.value ...语句相反。 -
localStorage.getItem("allInputs")上的 JSON.parse 的结果只会返回您在allInputValues中保存的值字符串;因此,您必须将其吐出到组件值中并使用它们来填充屏幕输入。
标签: javascript arrays input local-storage