jQuery ajax - serialize() メソッド

シリアライズされたフォーム値の結果を出力します:

$("button").click(function(){
  $("div").text($("form").serialize());
});

自分で試してみてください

定義と用法

serialize() メソッドは、フォームの値をシリアライズして、URL エンコードされたテキスト文字列を作成します。

フォーム要素(例えば input またはテキストボックス)またはフォーム要素自体を選択することができます。

シリアライズされた値は、AJAX リクエストを生成する際の URL クエリ文字列に使用できます。

文法

$(selector).serialize()

詳細説明

.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() メソッドは、<input>、<textarea>、<select>などの個別のフォーム要素の jQuery オブジェクトを操作できます。ただし、<form> タグ自体を選択してシリアライズする方が一般的です:

$('form').submit(function() {
  alert($(this).serialize());
  return false;
});

標準のクエリ文字列を出力します:

a=1&b=2&c=3&d=4&e=5

注釈:「成功の制御」のみを文字列にシリアライズします。フォームをボタンで送信しない場合、送信ボタンの値はシリアライズされません。フォーム要素の値がシリアライズ文字列に含まれる場合、要素は name 属性を使用する必要があります。