有没有办法修改被序列化的元素的名称,但仅限于序列化数据?我可能不会那么问,所以这就是我的意思。
意思是,如果我有一个控件:
<asp:dropdownlist id="ddTest" runat="server">
<asp:listitem value="1" name="1" />
<asp:listitem value="2" name="2" />
</asp:dropdownlist>
我将其序列化:
var x = $("form").serialize();
x会出现像:
ddTest=2
所以,我的问题是,如果不更改控件的名称,我怎样才能让x出来像:
TestID=2
这可能吗?
答案 0 :(得分:3)
这可能有用。
使用serializeArray
将表单序列化为如下所示的数组:
[{ name: "field_name", value: "field_value" }, ...]
通过循环生成的数组来修改正确的name
属性。
使用$.param
正确地对数组进行字符串化。
$("#testform").submit(function (e) {
var values = $(this).serializeArray()
, found = false
, i
, serialized;
e.preventDefault();
for (i = 0; i < values.length && !found; i++) {
if (values[i].name == "field1") {
// or whatever field you'd like to replace
values[i].name = "new_field_name";
found = true;
}
}
// serialized string with new names.
serialized = $.param(values);
});
答案 1 :(得分:0)
您可以尝试克隆节点,更改克隆节点中的信息,对其进行序列化,然后删除克隆。