如何从localstorage数组中将数据设置为input type =“text”?

时间:2015-08-13 06:17:18

标签: javascript jquery html5

我在尝试将信息输入到输入文本时遇到了一些麻烦,信息来自localstorage:

键=客户端,值:

[{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]

我的问题是如何将标识,名字,姓氏和电话设置为输入类型文本。我试着用这个jquery

$('#name').val(localStorage.getItem("name"));

但我接受了关键,没有价值观。 谢谢你的帮助!

4 个答案:

答案 0 :(得分:1)

这是您的localStorage

{client: "[{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]", se:fkey: "65d75836cdfe6220e7d8fd44a52ef14e,1438917914"}

要将其保存到localStorage对象,您需要先将任何对象转换为字符串

你可以使用JSON.stringify(object)

来完成

将其保存到localStorage使用localStorage.setItem('key', 'value')

当你想在localStorage

上获取它时

你可以使用localStorage.getItem('key')

来完成

如果您的项目是转换为字符串的json对象

你可以使用JSON.parse(string)带回来成为一个json对象

答案 1 :(得分:0)

您应首先记录localStorage以查看其中存储的内容。

如果值为

,则很奇怪
 [{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]

因为只有字符串类型可以存储在localStorage中。所以你可以通过以下方式存储上面的数组:

localStorage.setItem('key', JSON.stringify(array_above));

执行:

var data = JSON.parse(localStorage.getItem('key'));

当你想要检索它时。

还有什么,您的代码:

$('#name').val(localStorage.getItem('name'));

工作正常。

这是我的jsfiddle demo

答案 2 :(得分:0)

首先从localStorage获取数据并将它们存储在变量中。然后将您的变量从字符串转换为有效的JSON格式。最后访问所需的数据。这是一个例子:

var client = JSON.parse(storage.getItem(YOUR_CLIENT_KEY));
...
$('#name').val(client[0].firstname);

答案 3 :(得分:0)

本地存储(和会话存储)是键/值存储,其中键和值都是字符串。

因此,当从localStorage中提取数据时,它将是一个字符串。在您的情况下,您已将JSON对象存储在存储中,因此要将其用作对象,您需要从localStorage中获取字符串,然后使用JSON.parse来解析字符串并将其转换为对象,那么你可以在jQuery代码中使用对象的属性:

var data = localStorage.getItem("client");
if(data) {   
    var obj = JSON.parse(data);
    $('#name').val(obj[0].firstName + " " + obj[0].lastName);
}

请注意,如果字符串无效JSON,JSON.parse()可能会抛出错误,因此您可能希望将此调用包装在try / catch块中。