我想知道是否可以将返回的 json 存储在隐藏的输入字段中。例如,这是我的 json 返回的内容:
[{"id":"15aea3fa","firstname":"John","lastname":"Doe"}]
我只想将 id 存储在隐藏字段中,以便稍后引用它来处理它。
示例:我有这样的事情:
<input id="HiddenForId" type="hidden" value="" />
并希望 jquery 稍后将值返回给我,如下所示:
var scheduletimeid = $('#HiddenForId').val();
最佳答案
虽然我已经看到建议的方法使用和工作,但我认为仅使用 JSON.stringify 设置隐藏字段的值会破坏 HTML...
在这里我将解释我的意思:
<input type="hidden" value="{"name":"John"}">
如您所见,开链括号后的第一个双引号可能会被某些浏览器解释为:
<input type="hidden" value="{" rubbish >
因此,为了更好地解决此问题,我建议使用 encodeURIComponent 函数。与 JSON.stringify 一起,我们应该拥有如下内容:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
现在该值可以安全地存储在输入隐藏类型中,如下所示:
<input type="hidden" value="%7B%22name%22%3A%22John%22%7D">
或者(甚至更好)使用由脚本操作的 HTML 元素的 data- 属性,该脚本将使用数据,如下所示:
<div id="something" data-json="%7B%22name%22%3A%22John%22%7D"></div>
现在要读回数据,我们可以执行以下操作:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
关于javascript - 在输入隐藏字段中存储返回 json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448831/