カテゴリ: React 更新日: 2026/02/14

Reactのフォーム送信イベント(onSubmit)を完全解説!初心者でもわかるフォーム処理の基本

フォーム送信イベント(onSubmit)の基本
フォーム送信イベント(onSubmit)の基本

先生と生徒の会話形式で理解しよう

生徒

「Reactで入力フォームを作ったんですが、送信ボタンを押したあとってどうやって処理するんですか?」

先生

「そのときに使うのが、フォーム送信イベントのonSubmitです。」

生徒

「ボタンのクリックとは違うんですか?」

先生

「はい。フォーム全体が送信された瞬間を受け取る仕組みなので、入力処理の基本になります。」

1. フォーム送信とは何か

1. フォーム送信とは何か
1. フォーム送信とは何か

フォーム送信とは、名前やメールアドレスなどを入力し、 送信ボタンを押したときに内容をまとめて処理することです。 紙の申込書に必要事項を書いて、提出箱に入れる行為とよく似ています。 Reactでは、この「提出した瞬間」を検知するためにonSubmitという仕組みを使います。

2. onSubmitの基本的な役割

2. onSubmitの基本的な役割
2. onSubmitの基本的な役割

onSubmitは、formタグに設定します。 これにより、送信ボタンが押されたときや、 キーボードの確定操作が行われたときに処理が実行されます。 ボタンのクリックだけを見るよりも、 フォームとして自然な動きを実現できます。

3. 最もシンプルなonSubmitの例

3. 最もシンプルなonSubmitの例
3. 最もシンプルなonSubmitの例

まずは、送信されたことを画面に知らせるだけの、 とても簡単な例を見てみましょう。


import React from "react";

function App() {
  const handleSubmit = () => {
    alert("フォームが送信されました");
  };

  return (
    <form onSubmit={handleSubmit}>
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(送信ボタンを押すと、送信されたことが表示されます)

4. ページが再読み込みされる理由

4. ページが再読み込みされる理由
4. ページが再読み込みされる理由

初心者が戸惑いやすい点として、 フォームを送信すると画面が一度消えてしまうことがあります。 これは、もともとのWebの仕組みで、 フォーム送信時にページを再読み込みする動きがあるためです。 Reactでは、この動きを止めることがよくあります。

5. preventDefaultで再読み込みを防ぐ

5. preventDefaultで再読み込みを防ぐ
5. preventDefaultで再読み込みを防ぐ

再読み込みを止めるには、 event.preventDefaultという処理を使います。 これは「元の動きをやめてください」と伝える命令です。 電車の自動ドアが閉まる前に止めるようなイメージです。


import React from "react";

function App() {
  const handleSubmit = (e) => {
    e.preventDefault();
    alert("ページは再読み込みされません");
  };

  return (
    <form onSubmit={handleSubmit}>
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(画面はそのままで、メッセージだけが表示されます)

6. 入力内容を送信時に使う方法

6. 入力内容を送信時に使う方法
6. 入力内容を送信時に使う方法

実際のフォームでは、 入力された内容を送信時にまとめて扱います。 これは、箱に入れた書類を一度に取り出して確認する感覚です。 Stateに保存した値を、 onSubmitの中で使うことができます。


import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    alert("入力された名前:" + name);
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        placeholder="名前"
        onChange={(e) => setName(e.target.value)}
      />
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(入力した名前が送信時に表示されます)

7. onClickではなくonSubmitを使う理由

7. onClickではなくonSubmitを使う理由
7. onClickではなくonSubmitを使う理由

送信ボタンにonClickを使うこともできますが、 onSubmitを使うほうがフォームとして自然です。 キーボード操作でも送信でき、 入力画面としての使いやすさが向上します。 そのため、フォーム処理ではonSubmitが基本になります。

8. 初心者が覚えておきたいポイント

8. 初心者が覚えておきたいポイント
8. 初心者が覚えておきたいポイント

フォーム送信では、 formタグとonSubmitをセットで使うことが大切です。 再読み込みを防ぐためのpreventDefault、 入力内容をStateから取得する流れを理解すると、 Reactのフォーム処理が一気に分かりやすくなります。 これは、Reactで入力画面を作るうえで欠かせない基本です。

カテゴリの一覧へ
新着記事
New1
Next.js
Next.js Pages RouterのAPI Routesの仕組みを完全ガイド!初心者でもわかるNext.jsのサーバー処理
New2
Next.js
Next.jsの内部仕組みをやさしく解説!レンダリングとキャッシュ戦略を初心者向けに理解しよう
New3
React
ReactのuseEffect依存配列を徹底解説!初心者でも理解できるDependency Arrayの仕組み
New4
React
Reactのフォーム送信イベント(onSubmit)を完全解説!初心者でもわかるフォーム処理の基本
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.3
Java&Spring記事人気No3
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.5
Java&Spring記事人気No5
React
Reactのチェックボックス入力を完全解説!初心者でもわかるReactフォーム処理
No.6
Java&Spring記事人気No6
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.7
Java&Spring記事人気No7
Next.js
Next.jsのApp RouterとPages Routerの役割の違いを完全解説!初心者でもわかるNext.jsの基本概念
No.8
Java&Spring記事人気No8
React
Reactのラジオボタン選択を完全解説!初心者でもわかるReactフォーム処理