2014-09-22 110 views
0

因此,对于此编程任务,我们应该让用户填写表单,并在输入表单时将其输入保存在本地存储中。JavaScript - 将表单文本存储在本地存储中

<input type="text" name="name" id="name" onkeyup="StoreText()"> 

是我的HTML表单的一部分,我有以下功能:

<script> 
    function StoreText() { 
    var name = document.getElementById("name"); 
    localStorage.setItem("name", name); 
    } 
</script> 

不过,我使用Chrome检查器可以查看本地存储和我没有看到任何有。我的代码有什么问题?

+2

你做了什么对问题进行调试?事件处理程序是否被执行?提示:您正尝试在本地存储中存储DOM元素。这是行不通的。你必须得到''的价值。 – 2014-09-22 17:30:53

回答

0

尝试存储name.value而不是名称。

+0

请**解释**为什么OP应该“尝试”。 – 2014-09-22 17:57:34

+0

这似乎是一个简单的问题,因为我认为你不能在localStorage中存储一个元素,这很难解释。 – Mandera 2014-09-22 18:02:26

+0

显然OP是初学者。我认为他们会很感激每一点信息。更不用说未来的访客。没有人从单一行“学习A而不是B”的答案中学到任何东西。 OP可能不知道“name”是一个DOM元素,或者您不能将DOM元素存储在本地存储中。所以这点确实非常有用。 – 2014-09-22 18:05:03

0

小提琴:http://liveweave.com/z71PS8

这是localStorage的是如何工作的。

杉杉你必须告诉localStorage的到的getItem

if (localStorage.getItem('Data')) { 
    $("#name").val(localStorage.getItem('Data')); 
} 

现在你保存你的价值与以下(这将在后面setItem其本地存储你的价值被检索)...

localStorage.setItem('Data', $("#name").val()); 

您可能还想看到Using Local Storage for Appended HTML

中的JavaScript/JQuery的:

if (localStorage.getItem('Data')) { 
    $("#name").val(localStorage.getItem('Data')); 
} 
$("#name").keyup(function() { 
    localStorage.setItem('Data', $("#name").val()); 
}); 

的HTML:

<input type="text" id="name"> 

Here's一个纯JavaScript /非JQuery的解决方案