serialize
返回包含表单字段的URL编码的字符串。如果需要附加到它,则可以使用标准的URL编码的字符串规则进行附加,例如:
var values = $("#frmblog").serialize();
values += "&content=" + encodeURIComponent(content_val);
(以上假设调用values
后总会有一个值serialize
;如果不一定正确,则在添加之前&
根据是否values
为空确定是否使用。)
或者,如果愿意,可以使用serializeArray
,然后将其添加到数组中,并使用jQuery.param
将结果转换为查询字符串,但这似乎很漫长:
var values = $("#frmblog").serializeArray();
values.push({
name: "content",
value: content_val
});
values = jQuery.param(values);
更新:在稍后添加的评论中,您说:
问题是,在序列化过程中,在“ content”键中设置了一些默认值,因此我不能只是附加一个新值,而必须更新其中的一个新值。”
那改变了事情。content
在URL编码的字符串中查找是很痛苦的,所以我会使用数组:
var values, index;
// Get the parameters as an array
values = $("#frmblog").serializeArray();
// Find and replace `content` if there
for (index = 0; index < values.length; ++index) {
if (values[index].name == "content") {
values[index].value = content_val;
break;
}
}
// Add it if it wasn't there
if (index >= values.length) {
values.push({
name: "content",
value: content_val
});
}
// Convert to URL-encoded string
values = jQuery.param(values);
您可能希望使它成为可重用的功能。