當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JQuery .serialize()用法及代碼示例


用法
.serialize() => String

說明:將一組表單元素編碼為字符串以進行提交。

  • 添加的版本:1.0.serialize()

    • 此方法不接受任何參數。

.serialize() 方法以標準 URL 編碼表示法創建文本字符串。它可以作用於已選擇單個表單控件的 jQuery 對象,例如 <input><textarea><select>$( "input, textarea, select" ).serialize();

但是,選擇<form> 本身進行序列化通常更容易:

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

在這種情況下,jQuery 將表單內的成功控件序列化。隻有 form 元素會檢查它們包含的輸入,在所有其他情況下,要序列化的輸入元素應該是傳遞給 .serialize() 方法的集合的一部分。在一個集合中同時選擇表單及其子項將導致序列化字符串中的重複項。

注意:隻有"successful controls" 被序列化為字符串。由於未使用按鈕提交表單,因此沒有序列化提交按鈕值。對於要包含在序列化字符串中的表單元素的值,該元素必須具有 name 屬性。複選框和單選按鈕(類型為 "radio" 或 "checkbox" 的 input )的值僅在它們被選中時才包括在內。來自文件選擇元素的數據未序列化。

例子:

將表單序列化為可以在 Ajax 請求中發送到服務器的查詢字符串。

<!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.5.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>

演示:

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .serialize()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。