javascript 对象像 C# 字典一样加载值(并将其作为字典<字符串,字符串>传递)



我可以看到许多问题与相反的方向

我的问题是我如何 pack up值?

var KeyName = "name" or.. $(ControlId).attr("id")
var ValName = $(ControlId).val()

然后用ajax发布该值,当然是在序列化之后(如果需要的话)

var CS_Pckg = Sys.Serialization.JavaScriptSerializer.serialize(DictionaryLike_Package);
ajaxPost(CS_Pckg);
...some ajax function

它就像一个数组吗?

jquery具有"序列化"方法,您可以将其用于序列化html表单:http://api.jquery.com/serialize/

但是,该方法序列化为get string;如果您想要一组名称/值对对象,请签出Serializearray:http://api.jquery.com/serializearray/

如果两个都没有产生您想要的输出,那么您几乎只需要自己进行序列化即可。您可以使用jQuery的每种方法通过一组元素进行迭代,然后可以从其中提取所需的任何信息。完成后,您拥有一个带有所有数据的JavaScript对象,您可以使用JSON.stringify(thatObject);

将该对象转换为字符串。

这是一个快速示例:

var serializedData = {};
$('#yourForm').children().each(function(i, elem) {
    var $elem = $(elem);
    serializedData[$elem.attr('name')] = $elem.val();
});
alert("You're serialized JSON is: " + JSON.stringify(serializedData));

(较早的选项没有示例,因为它们与var serialized = $('#yourForm').children().serialize();一样简单。)

最新更新