2012-09-23 67 views
1

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

我目前的代码覆盖隐藏字段从[]到例如"32"

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

回答

2

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

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

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

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()); 
相关问题