Javascript 使用本地存储,回调对象并用 Json 更改为要在填充函数中使用的字符串

Javascript Using Local Storage, calling back the object and changing with Json to a string to use in a populate function

你好我正在做一个表单,我使用填充方法在 jJQuery 中填写一个表单(是的,我知道 jquery 只是一个库)进行测试。现在,我使用 Json 和本地存储将数据保存在表单中。然后我回调本地存储中的对象并使用 Json 将其转回字符串。问题是该字符串将与我硬编码到填充方法中的字符串完全相同,但是当我将字符串替换它时(因此它始终使用当前形式保存的数据)它将无法正常工作。我假设它很小。

这是我从本地存储中调回并转回字符串的对象。

var myString = localStorage.getItem("all");
var myStringSave = JSON.stringify(myString); //my string

myStringSave 将包含例如: 姓名:'Joe',出生日期:'01/02/1992' 这与我的硬编码完全相同。然而硬编码有效

$('#frm').populate({Name:'Joe',dateBirth:'01/02/1992'})

但是字符串中的那个不起作用:

$('#frm').populate(myStringSave)

$('#frm').populate({myStringSave})

我看了几个小时,没有任何意义。该字符串与我的硬编码字符串完全相同,那么为什么它不起作用?非常感谢您的帮助。

populate 接受一个 JSON 作为参数,你给它一个字符串。

The basic form for using Populate is: $(selector).populate(JSON, options)

不要做 :

var myString = localStorage.getItem("all"); // this IS a string (localStorage can't store anything else)
var myStringSave = JSON.stringify(myString); // you stringify a string

您可以通过以下方式取回您的 JSON:

myJsonSave = JSON.parse( localStorage.all )

那么 $('#frm').populate(myJsonSave) 应该可以。

您甚至可以在一行中完成所有操作:

$('#frm').populate( JSON.parse( localStorage.all ) )