目次

目次

【jQuery】フォームの値をクエリ文字列で取得

アバター画像
海津 純平
アバター画像
海津 純平
最終更新日2018/03/26 投稿日2018/03/26

はじめに

フォームをAjax送信しなければならなかったときに、 フォームの入力値を簡単にすべて取得したかったので調べてみました。

serializeメソッド

結論から言うと、serializeメソッドで簡単にクエリ文字列が取得できました。 以下のようなフォームがあったときには

<form action="/submit" method="post">
  <input type="text" name="id">
  <input type="text" name="name">
  <input type="submit" value="送信">
</form>

serializeメソッドで

$('form').serialize();

クエリ文字列が取得できます。

id=100&name=hoge

特定の要素のみの取得もできます。

$('form > input[name=id]').serialize();
// id=100

serializeArrayメソッドを使えば、配列で取得も可能です。

$('form').serializeArray();
// [{name: "id", value: "1"}, {name: "name", value: "hoge"}]

フォームの送信

このserializeメソッドを使って、以下のようにフォームをAjaxでPOST送信できました。

<form action="/submit" method="post">
  <input type="text" name="id">
  <input type="text" name="name">
  <input type="submit" value="送信">
</form>

<script>
$('form').submit(function(e) {
    e.preventDefault(); // HTMLでの送信をキャンセル
    $.post('/submit', $(this).serialize())
        .done(function(data) {
            // 成功時の処理
        })
        .fail(function(data) {
            // 失敗時の処理
        });
});
</script>

まとめ

serializeメソッドを使えば、簡単にフォームの値を取得できました。

アバター画像

海津 純平

目次