column

ITコラム

mv11883

プログラミングノウハウ

2026.08.03

jQuery【submit】submitイベントを使ってフォーム送信時にデータを取得

この記事の監修者
Kay Arai

プログラマカレッジ講師(元エンジニア)
未経験からプログラミングを学ぶ受講生の方を、数多くサポートしてきました。「プログラミングって難しそう・・」その気持ち、よく分かります。私自身、最初はエラーの意味も分からず心が折れそうになりました。だからこそ、つまずきやすいポイントを一つひとつ丁寧にご説明するよう心がけています。楽しみながら、一緒に「できた!」を増やしていきましょう。

フォームが送信されると、ブラウザ上では「submitイベント」が発生します。jQueryでは、このイベントの発生タイミングに合わせて、入力内容の取得や未入力チェックなどの処理を追加できます。

以前は、このイベントを扱うために「submit()メソッド」がよく使われていました。ただしこのメソッドは、引数の有無によって異なる動作をするため、コードを読んだときに動きが分かりにくい場合があります。そのため現在は、on()メソッドを使ってイベントを登録する「 .on(“submit”, …) 」のような、用途がわかりやすい書き方が主流になっています。

この記事では jQuery のフォーム送信処理の基本について、以前のsubmit()メソッド を使った書き方にも触れつつ、現在のトレンドを分かりやすく解説します。

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。

最終更新日:2026年8月3日

1. jQueryのsubmitイベント

submitは、フォームが送信されるときに発生するイベントです。jQueryでは、このイベントの発生タイミングに合わせて処理を追加することができます。

フォームは、主に次のような操作で送信されます。

• <input type=”submit”>をクリックしたとき

• <input type=”image”>をクリックしたとき

• <button type=”submit”>をクリックしたとき

• フォーム内の入力欄を選択した状態で、Enter キーを押したとき(条件付き)

Enterキーでの送信は、フォーム内にsubmitボタンがある場合、またはテキスト入力欄が1つだけの場合に限られます。

jQueryでは以前、このsubmitイベントを扱うために、次のようにsubmit()メソッドを使って書くことがよくありました。

▼ 引数を渡さずに呼び出す:フォームの送信を強制的に実行

$(セレクタ).submit();

▼ 関数を渡す:submitイベントのハンドラとして登録

$(セレクタ).submit(function(event) {
  // 実行する処理
});

このようにsubmit()メソッドは、引数の有無により違う動作をするため、慣れていないと読みにくい場合があります。
そのため現在は、「イベントの登録」だけを行う on() メソッドを使い、次のように「 .on(“submit”, …) 」と書く方法が一般的です。

$(セレクタ).on("submit", function(event) {
  // 実行する処理
});

この書き方を選ぶメリットには、次のような点が挙げられます。

•「イベントの登録」という目的がはっきりしており分かりやすい

• 他のイベントでも同じ形で書けるので覚えやすい

なお初心者のうちは、送信時の処理を書くには「 .on(“submit”, …) 」を使うと覚えておけば大丈夫です。


jQuery【submit】submitイベントを使ってフォーム送信時にデータを取得【プログラマカレッジ】

▲目次へ戻る

2. submit イベントで form の入力内容を取得する

submit イベントを使うと、送信ボタンが押されたタイミングで入力内容を取得できます。

任意のテキストを入力して送信ボタンをクリックしてください。



<script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
<script>
$(() => {
  $("form").on("submit", function(event) {
    event.preventDefault();
    $("#result").text("入力内容は「" + $("#input").val() + "」です!");
  });
});
</script>

<div style="background-color:#ccc; padding:20px;">
  任意のテキストを入力して送信ボタンをクリックしてください。
  <form>
    <div style="display:inline-flex; align-items:center; gap:8px;">
      <input type="text" id="input">
      <button type="submit">送信</button>
    </div>
  </form>
  <div id="result"></div>
</div>

このサンプルでは、フォーム送信時に「 $(“#input”).val() 」で入力内容を取り出し、「 $(“#result”).text(…) 」で画面に表示しています。

さらに、「 event.preventDefault() 」で本来の送信動作を止めています。これによりページの再読み込みが行われないため、表示した結果をそのまま確認することができます。

submit イベントは、次のような場面でよく使われています。

• 入力内容のチェック

• 未入力エラーの表示

• 送信前の確認メッセージ表示

なお、val()メソッドの使用方法については、jQuery【 val 】value 値の取得と設定をご参照下さい。

また、form 要素については、以下のページもご参照下さい。

HTML 【フォーム】1 ~ フォームの概要とform要素の属性一覧
HTML 【フォーム】2 ~ form要素の使い方
HTML 【フォーム】3 ~ form要素で使う主な属性の使い方
HTML 【フォーム】4 ~ fieldset要素とlegend要素
HTML 【フォーム】5 ~ input要素(1)フォーム部品一覧
HTML 【フォーム】5 ~ input要素(2)テキスト入力部品
HTML 【フォーム】5 ~ input要素(3)ラジオボタンとチェックボックス
HTML 【フォーム】5 ~ input要素(4)日時の入力部品
HTML 【フォーム】5 ~ input要素(5)数値の入力部品
HTML 【フォーム】5 ~ input要素(6)レンジ(range)の入力部品
HTML 【フォーム】5 ~ input要素(7)色(color)の入力部品
HTML 【フォーム】5 ~ input要素(8)ファイル送信のための部品
HTML 【フォーム】5 ~ input要素(9)隠し情報(hidden)
HTML 【フォーム】5 ~ input要素(10)ボタン(submit、reset、button)
HTML 【フォーム】5 ~ input要素(11)画像ボタン(image)
HTML 【フォーム】6 ~ button要素で作るボタン
HTML 【フォーム】7 ~ ボタンの作り方比較とJavaScriptでアラート表示
HTML 【フォーム】8 ~ セレクトリスト
HTML 【フォーム】9 ~ 入力候補(datalist)
HTML 【フォーム】10 ~ テキストエリア(textarea)
HTML 【フォーム】11 ~ ラベル(label)
HTML 【フォーム】12 ~ 出力欄(output)
HTML 【フォーム】13 ~ 数量や割合のゲージ(meter)
HTML 【フォーム】14 ~ 進捗状況を示すプログレスバー(progress)
HTML 【フォーム】15 ~ キーを発行して暗号化(keygen)
HTML 【フォーム】16 ~ CSSでフォームを整える


jQuery【submit】submitイベントを使ってフォーム送信時にデータを取得【プログラマカレッジ】

▲目次へ戻る

3.jQueryでsubmitイベントをキャンセルする

submitイベントには、ブラウザが標準で用意している「デフォルトの動作」があります。それは、「フォームのデータをサーバーへ送信」し、「ページを遷移(=再読み込み)させる」、という一連の動作です。

event.preventDefault() 」 は、この「ブラウザ標準のデフォルト動作」をまとめてキャンセルするメソッドです。そのため、event.preventDefault()をsubmitイベントの中で使うと、「フォームが送信される」ことと「ページが再読み込みされること」を、両方とも止めます。

項目2では、event.preventDefault()の「ページの再読み込みを止める」役割によって、submitイベント発生時も画面が初期化されることなく、結果の表示を確認することができました。
ここでは、もう1つの「フォームが送信されることを止める」役割に着目します。

フォーム送信を中止したいとき、このevent.preventDefault()メソッドを使うことができます。

$("form").on("submit", function(event) {
  event.preventDefault();
});

たとえば、未入力なら処理を止めたい場合は、次のように書けます。

$("form").on("submit", function(event) {
  event.preventDefault();
  if ($("#input").val().length < 1) {
    return;
  }
  $("#result").text($("#input").val().length + "文字入力されました!");
});

この例では、入力された文字が1文字未満(未入力)ならそこで処理を終了し、結果の文字数は表示せずに処理を終了しています。

💡【ポイント】 jQueryのreturn falseとの違い

jQueryでは、次のように「 return false; 」と書いても送信を止めることができます。

$("form").on("submit", function() {
  return false;
});

ただ、return false は送信停止だけでなくイベント伝播(イベントが親要素へ伝わっていくこと)も停止するため、送信だけを止めたい場合は preventDefault()メソッド を使う方法がおすすめです。


jQuery【submit】submitイベントを使ってフォーム送信時にデータを取得【プログラマカレッジ】

▲目次へ戻る

4. jQueryのsubmitイベントについて、よくある質問

Q1. return false; でも送信を止められますか?

【A】止めることは可能です。ただ、return false は送信停止だけでなくイベント伝播も停止するため、送信だけを止めたい場合は preventDefault() を使う方法がおすすめです。


Q2. submitイベントの中で入力値を取得できますか?

【A】はい、val()メソッドで取得できます。$("セレクタ名").val()のように記述します。


Q3. button要素とinput type="submit" はどちらを使えばよいですか?

【A】どちらでも問題ありませんが、ボタン内にHTMLを含められるため、現在はbutton要素を使うケースが多くなっています。


Q4. submitイベントが動かないとき、どんな原因が考えられますか?

【A】よくある原因として、次の3つが挙げられます。

• jQueryの読み込み漏れ

• 対象の form を正しく選べていない

• ページ読み込み後に動的に追加したform要素

→ $(document) を起点にした書き方に変更する必要あり


Q5. clickイベントとsubmitイベントとの違いはありますか?

【A】clickは、ボタンやリンクなど「個々の要素」がクリックされたときに発生するイベントです。一方submitは、「フォーム全体」が送信されるときに発生するイベントで、対象はあくまでform要素です。たとえば、 <button type="submit">をクリックすると、まずそのボタンに対してclickイベントが発生し、続けてフォームに対してsubmitイベントが発生します。


Q6. jQueryを使わずに、JavaScriptだけでフォーム処理を書くことはできますか?

【A】はい、可能です。2026年1月に約10年ぶりのメジャーアップデートとなる jQuery 4.0 がリリースされましたが、これは主に既存のレガシーなコードベースの保守向けの位置づけとなっています。新規に開発するプロジェクトでは、jQueryを使わずに素のJavaScript(Vanilla JS)だけでフォーム処理を書いたり、React・Vueなどのモダンなフレームワークを使う場面も増えています。


jQuery【submit】submitイベントを使ってフォーム送信時にデータを取得【プログラマカレッジ】

▲目次へ戻る

5. まとめ

jQueryのsubmitイベントについて、いかがでしたでしょうか。
「Webプログラマになりたいけど、独力では限界がある」と感じている方には、「プログラマカレッジ」がおすすめです。

プログラマカレッジ」は本気でプログラマを目指す方のための、就職支援付き、受講料無料のプログラミングスクールです。
豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。

本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。
→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」

▲目次へ戻る

無料説明会
適正診断

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ