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 对象。
表单元素有几种类型:
.serialize() 方法可以操作已选取个别表单元素的 jQuery 对象,比如 <input>, <textarea> 以及 <select>。不过,选择 <form> 标签本身进行序列化一般更容易些:
$('form').submit(function() { alert($(this).serialize()); return false;});
输出标准的查询字符串:
a=1&b=2&c=3&d=4&e=5
注释:只会将”成功的控件“序列化为字符串。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。