フォームが送信されると、ブラウザ上では「submitイベント」が発生します。jQueryでは、このイベントの発生タイミングに合わせて、入力内容の取得や未入力チェックなどの処理を追加できます。
以前は、このイベントを扱うために「submit()メソッド」がよく使われていました。ただしこのメソッドは、引数の有無によって異なる動作をするため、コードを読んだときに動きが分かりにくい場合があります。そのため現在は、on()メソッドを使ってイベントを登録する「 .on(“submit”, …) 」のような、用途がわかりやすい書き方が主流になっています。
この記事では jQuery のフォーム送信処理の基本について、以前のsubmit()メソッド を使った書き方にも触れつつ、現在のトレンドを分かりやすく解説します。
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2026年8月3日
目次
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”, …) 」を使うと覚えておけば大丈夫です。
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 要素については、以下のページもご参照下さい。
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()メソッド を使う方法がおすすめです。
【A】止めることは可能です。ただ、return false は送信停止だけでなくイベント伝播も停止するため、送信だけを止めたい場合は preventDefault() を使う方法がおすすめです。
【A】はい、val()メソッドで取得できます。$("セレクタ名").val()のように記述します。
【A】どちらでも問題ありませんが、ボタン内にHTMLを含められるため、現在はbutton要素を使うケースが多くなっています。
【A】よくある原因として、次の3つが挙げられます。
• jQueryの読み込み漏れ
• 対象の form を正しく選べていない
• ページ読み込み後に動的に追加したform要素
→ $(document) を起点にした書き方に変更する必要あり
【A】clickは、ボタンやリンクなど「個々の要素」がクリックされたときに発生するイベントです。一方submitは、「フォーム全体」が送信されるときに発生するイベントで、対象はあくまでform要素です。たとえば、 <button type="submit">をクリックすると、まずそのボタンに対してclickイベントが発生し、続けてフォームに対してsubmitイベントが発生します。
【A】はい、可能です。2026年1月に約10年ぶりのメジャーアップデートとなる jQuery 4.0 がリリースされましたが、これは主に既存のレガシーなコードベースの保守向けの位置づけとなっています。新規に開発するプロジェクトでは、jQueryを使わずに素のJavaScript(Vanilla JS)だけでフォーム処理を書いたり、React・Vueなどのモダンなフレームワークを使う場面も増えています。
jQueryのsubmitイベントについて、いかがでしたでしょうか。
「Webプログラマになりたいけど、独力では限界がある」と感じている方には、「プログラマカレッジ」がおすすめです。
「プログラマカレッジ」は本気でプログラマを目指す方のための、就職支援付き、受講料無料のプログラミングスクールです。
豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。
→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」
INTERNOUS,inc. All rights reserved.