serialize() 方法通过序列化表单值,创建 URL 编码文本字符串,可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身,序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。
$(selector).serialize()
可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax(),举例如下:
一个不好的示例:
//jquery代码
$.ajax({
url: 'my url',
dataType: "json",
type: "post",
data: {
name: $([name="_name"]).val(),
info: $([name="_info"]).val(),
},
success: function(data) {
// your code
}
});
正确的方式:
$.ajax({
url: 'my url',
dataType: "json",
type: "post",
data: $("form").serialize(),
success: function(data) {
// your code
}
});
详细说明
.serialize() 方法创建以标准 URL 编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。
表单元素有几种类型:
4
5
6
7
.serialize() 方法可以操作已选取个别表单元素的 jQuery 对象,比如 , 以及 。不过,选择 标签本身进行序列化一般更容易些:
$('form').submit(function() {
alert($(this).serialize());
return false;
});
输出标准的查询字符串:
a=1&b=2&c=3&d=4&e=5
注释:只会将”成功的控件“序列化为字符串。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。