我从服务器端到客户端只有纯数字in,如何动态地将它添加到html隐藏字段中,使其看起来像数组或JSON格式(我的意思是:["32","33","34"]
),以便在下一步我可以在服务器上接收和解析?隐藏字段在开始时仅包含空方括号[]
。
我当前的代码将隐藏字段从[]
覆盖到例如"32"
$("#myHiddenField").val(JSON.stringify(data.result[0].newid));
发布于 2012-09-23 17:41:37
您可以使用$.parseJSON()从隐藏的输入值反序列化数组,push()新项,然后再次序列化数组:
var $hiddenField = $("#myHiddenField");
var results = $.parseJSON($hiddenField.val());
results.push(data.result[0].newid);
$hiddenField.val(JSON.stringify(results));
但是,在添加项时跟踪数组,并仅在提交表单时序列化它(例如,在submit事件处理程序中)可能更有效。
发布于 2012-09-23 17:52:05
为了避免解析隐藏字段中的数据,您可以保留一个实际的数组,将新的id推入其中,并将其序列化以放入隐藏字段中:
var myArray = [];
myArray.push(data.result[0].newid);
$("#myHiddenField").val(JSON.stringify(myArray));
注意:数字数组的JSON形式应该是[32,33,34]
而不是["32","33","34"]
,这也是您从上面的代码中得到的。如果您想使用字符串格式而不是数字格式,请在推送值之前添加一个.toString()
:
myArray.push(data.result[0].newid.toString());
https://stackoverflow.com/questions/12551208
复制相似问题