標籤:按鈕 log 支援 dep 單元素 array turn 類型 sel
.serialize() 方法建立以標準 URL 編碼錶示的文本字串。它的操作對象是代表表單元素集合的 jQuery 對象。
表單元素有幾種類型:
<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> 標籤本身進行序列化一般更容易些:
$(‘form‘).submit(function() { alert($(this).serialize()); return false; //不阻止預設行為就會發送資料重新整理頁面
});
輸出標準的查詢字串:
a=1&b=2&c=3&d=4&e=5
注釋:只會將”成功的控制項“序列化為字串。如果不使用按鈕來提交表單,則不對提交按鈕的值序列化。如果要表單元素的值包含到序列字串中,元素必須使用 name 屬性。
//serializeArray()
$("form").submit(function() { console.log($(this).serializeArray()); return false;});
上面的代碼產生下面的資料結構(假設瀏覽器支援 console.log):
[ { name: a value: 1 }, { name: b value: 2 }, { name: c value: 3 }, { name: d value: 4 }, { name: e value: 5 }]
var v11 = $.param( { name:"CodePlayer", age:18 } ); // "name=CodePlayer&age=18"
var array = [
{ name: "name", value: "張三" },
{ name: "age", value: 18, extra: "忽略該屬性" },
{ name: "grade" }, // 沒有value屬性,則value值為undefined,將被轉為空白字串""
{ name: "orderId", value: 2 },
{ name: "orderId", value: 3 },
];
var v12 = $.param( array ); // "name=%E5%BC%A0%E4%B8%89&age=18&grade=&orderId=2&orderId=3"
Jquery ajax 表單.serialize() 和serializeArray()序列化$.param()