1

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

我当前的代码覆盖隐藏字段[],例如"32"

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

2 回答 2

2

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

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

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

于 2012-09-23T09:41:37.290 回答
1

为了避免必须解析隐藏字段中的数据,您可以保留一个实际数组,将新 id 推送给它,并将其序列化以放入隐藏字段:

var myArray = [];

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

注意:数字数组的 JSON 形式将是[32,33,34]而不是["32","33","34"],这也是您从上面的代码中得到的。如果您想要使用字符串而不是数字的格式,.toString()请在推送值之前添加 a:

myArray.push(data.result[0].newid.toString());
于 2012-09-23T09:52:05.190 回答