如何动态格式化和添加新数字到隐藏字段?

时间:2012-09-23 09:35:10

标签: javascript jquery

我从服务器进入客户端只有纯数字ID,如何将其动态添加到html隐藏字段,使其看起来像数组或JSON格式(我的意思是:["32","33","34"]),以便在下一步我可以收到服务和解析?隐藏字段仅包含空白括号[]

我当前的代码覆盖了从[]到例如{0}的隐藏字段。 "32"

$("#myHiddenField").val(JSON.stringify(data.result[0].newid));

2 个答案:

答案 0 :(得分:2)

您可以使用$.parseJSON()从隐藏的输入值反序列化数组,push()新项目,然后再次序列化数组:

var $hiddenField = $("#myHiddenField");
var results = $.parseJSON($hiddenField.val());
results.push(data.result[0].newid);
$hiddenField.val(JSON.stringify(results));

但是,在添加项目时跟踪数组可能更有效,并且仅在提交表单时将其序列化(例如,在submit事件处理程序中)。

答案 1 :(得分:1)

为了避免必须解析隐藏字段中的数据,您可以保留一个实际数组,将新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());