jQuery - serialize() 方法 W3School給出的定義與用法: serialize() 方法通過序列化表單值,創建 URL 編碼文本字元串。 您可以選擇一個或多個表單元素(比如 input 及/或 文本框),或者 form 元素本身。 序列化的值可在生成 AJAX 請求時用於 U ...
jQuery - serialize() 方法
W3School給出的定義與用法:
serialize() 方法通過序列化表單值,創建 URL 編碼文本字元串。
您可以選擇一個或多個表單元素(比如 input 及/或 文本框),或者 form 元素本身。
序列化的值可在生成 AJAX 請求時用於 URL 查詢字元串中。
語法
$(selector).serialize()
詳細說明
.serialize() 方法創建以標準 URL 編碼表示的文本字元串。它的操作對象是代表表單元素集合的 jQuery 對象。
------------------------------------------- 分割線 -----------------------------------------------------
serialize()
函數用於序列化一組表單元素,將表單內容編碼為用於提交的字元串。
serialize()
函數常用於將表單內容序列化,以便用於AJAX提交。
該函數主要根據用於提交的有效表單控制項的name和value,將它們拼接為一個可直接用於表單提交的文本字元串,該字元串已經過標準的URL編碼處理(字元集編碼為UTF-8)。
該函數不會序列化不需要提交的表單控制項,這和常規的表單提交行為是一致的。例如:不在<form>標簽內的表單控制項不會被提交、沒有name屬性的表單控制項不會被提交、帶有disabled屬性的表單控制項不會被提交、沒有被選中的表單控制項不會被提交。
與常規表單提交不一樣的是:常規表單一般會提交帶有name的按鈕控制項,而serialize()
函數不會序列化帶有name的按鈕控制項。
返回值
serialize()
函數的返回值為String類型,返回將表單元素編碼後的可用於表單提交的文本字元串。
示例&說明
請參考下麵這段初始HTML代碼:
<form name="myForm" action="http://www.365mini.com" method="post"> <input name="uid" type="hidden" value="1" /> <input name="username" type="text" value="張三" /> <input name="password" type="text" value="123456" /> <select name="grade" id="grade"> <option value="1">一年級</option> <option value="2">二年級</option> <option value="3" selected="selected">三年級</option> <option value="4">四年級</option> <option value="5">五年級</option> <option value="6">六年級</option> </select> <input name="sex" type="radio" checked="checked" value="1" />男 <input name="sex" type="radio" value="0" />女 <input name="hobby" type="checkbox" checked="checked" value="1" />游泳 <input name="hobby" type="checkbox" checked="checked" value="2" />跑步 <input name="hobby" type="checkbox" value="3" />羽毛球 <input name="btn" id="btn" type="button" value="點擊" /> </form>
對<form>元素進行序列化可以直接序列化其內部的所有表單元素。
// 序列化<form>內的所有表單元素 // 序列化後的結果:uid=1&username=%E5%BC%A0%E4%B8%89&password=123456&grade=3&sex=1&hobby=1&hobby=2 alert( $("form").serialize() );
我們也可以直接對部分表單元素進行序列化。
// 序列化所有的text、select、checkbox表單元素 // 序列化後的結果:username=%E5%BC%A0%E4%B8%89&password=123456&grade=3&hobby=1&hobby=2 alert( $(":text, select, :checkbox").serialize() );
serialize()
函數通常用於將表單內容序列化,以便通過AJAX方式提交。
$("#btn").click( function(){ // 將當前表單內容以POST請求的AJAX方式提交到"http://www.365mini.com" $.post( "http://www.365mini.com", $("form").serialize(), function( data, textStatus, jqXHR ){ alert( "AJAX提交成功!" ); } ); } );