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