.serialize()


.serialize()傳回:字串

說明:將一組表單元素編碼成字串以提交。

.serialize() 方法會建立一個標準 URL 編碼符號的文字字串。它可以作用於選取個別表單控制項的 jQuery 物件,例如 <input><textarea><select>$( "input, textarea, select" ).serialize();

不過,通常較容易選取 <form> 本身來進行序列化

1
2
3
4
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
});

在此情況下,jQuery 會將表單內成功的控制項序列化。僅檢查 form 元素以尋找它們包含的輸入,在所有其他情況下,要序列化的輸入元素應為傳遞給 .serialize() 方法的集合的一部分。在集合中同時選取表單及其子項將導致序列化的字串中出現重複項。

注意:僅會將 "成功的控制項" 序列化至字串。由於表單並未使用按鈕提交,因此不會序列化任何提交按鈕值。若要將表單元素的值包含在序列化的字串中,元素必須具有 name 屬性。僅當核取方塊和無線按鈕 (類型為 "radio" 或 "checkbox" 的 input) 被勾選時,才會包含其值。不會序列化檔案選取元素的資料。

範例

將表單序列化為查詢字串,以便在 Ajax 要求中傳送至伺服器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>serialize demo</title>
<style>
body, select {
font-size: 12px;
}
form {
margin: 5px;
}
p {
color: red;
margin: 5px;
font-size: 14px;
}
b {
color: blue;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<br>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<br>
<input type="checkbox" name="check" value="check1" id="ch1">
<label for="ch1">check1</label>
<input type="checkbox" name="check" value="check2" checked="checked" id="ch2">
<label for="ch2">check2</label>
<br>
<input type="radio" name="radio" value="radio1" checked="checked" id="r1">
<label for="r1">radio1</label>
<input type="radio" name="radio" value="radio2" id="r2">
<label for="r2">radio2</label>
</form>
<p><tt id="results"></tt></p>
<script>
function showValues() {
var str = $( "form" ).serialize();
$( "#results" ).text( str );
}
$( "input[type='checkbox'], input[type='radio']" ).on( "click", showValues );
$( "select" ).on( "change", showValues );
showValues();
</script>
</body>
</html>

示範