her*_*rsh 47 javascript jquery json
我想知道是否可以将返回json存储在隐藏的输入字段中.例如,这是我的json返回的:
[{"id":"15aea3fa","firstname":"John","lastname":"Doe"}]
Run Code Online (Sandbox Code Playgroud)
我想将id存储在隐藏字段中,以便稍后可以引用它来执行某些操作.
示例:我有这样的事情:
<input id="HiddenForId" type="hidden" value="" />
Run Code Online (Sandbox Code Playgroud)
并希望jquery稍后将值返回给我:
var scheduletimeid = $('#HiddenForId').val();
Run Code Online (Sandbox Code Playgroud)
rod*_*odu 133
虽然我已经看到了使用和工作的建议方法,但我认为仅使用JSON.stringify设置隐藏字段的值会破坏HTML ...
在这里,我将解释我的意思:
<input type="hidden" value="{"name":"John"}">
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,开放链括号之后的第一个双引号可能会被某些浏览器解释为:
<input type="hidden" value="{" rubbish >
Run Code Online (Sandbox Code Playgroud)
因此,为了更好地解决这个问题,我建议使用encodeURIComponent函数.与JSON.stringify一起,我们分享如下内容:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
Run Code Online (Sandbox Code Playgroud)
现在该值可以安全地存储在输入隐藏类型中,如下所示:
<input type="hidden" value="%7B%22name%22%3A%22John%22%7D">
Run Code Online (Sandbox Code Playgroud)
或者(甚至更好)使用将消耗数据的脚本操纵的HTML元素的data-属性,如下所示:
<div id="something" data-json="%7B%22name%22%3A%22John%22%7D"></div>
Run Code Online (Sandbox Code Playgroud)
现在要读取数据,我们可以做类似的事情:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
Run Code Online (Sandbox Code Playgroud)
Mar*_*iss 19
您可以将其存储在隐藏字段中,或将其存储在javascript对象(我的偏好)中,因为可能的访问将通过javascript.
注意:因为你有一个数组,然后就可以访问myvariable[0]第一个元素(就像你拥有它一样).
编辑显示示例:
clip...
success: function(msg)
{
LoadProviders(msg);
},
...
var myvariable ="";
function LoadProviders(jdata)
{
myvariable = jdata;
};
alert(myvariable[0].id);// shows "15aea3fa" in the alert
Run Code Online (Sandbox Code Playgroud)
编辑:创建此页面:http://jsfiddle.net/GNyQn/以演示上述内容.这个例子假设您已经在数组中正确返回了您的命名字符串值,并且只需要根据OP问题存储它.在示例中,我还将返回的第一个数组的值(根据OP示例)作为文本放入div中.
我不确定为什么这被视为"复杂",因为我看不到在这个数组中处理这些字符串的简单方法.
Dav*_*und 13
如果使用JSON Serializer,则只需将对象以字符串格式存储即可
myHiddenText.value = JSON.stringify( myObject );
Run Code Online (Sandbox Code Playgroud)
然后,您可以返回值
myObject = JSON.parse( myHiddenText.value );
Run Code Online (Sandbox Code Playgroud)
但是,如果您不打算在页面提交中传递此值,那么对您来说可能更容易,并且如果您将其作为全局javascript变量丢弃,则可以节省大量序列化.
| 归档时间: |
|
| 查看次数: |
92444 次 |
| 最近记录: |