カテゴリ: 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
React
ReactのPropsでオブジェクト型を扱う方法を完全ガイド!初心者でもわかる型安全なProps管理
New2
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New3
React
React Context APIの分割方法を解説!パフォーマンスを高めるベストプラクティス
New4
React
Reactの自己終了タグの書き方を完全ガイド!初心者でもわかるimgやinputのJSX記法
人気記事
No.1
Java&Spring記事人気No1
React
Reactの子コンポーネントから親コンポーネントへデータを渡す方法を徹底解説!初心者にもわかるReactのイベントとデータの流れ
No.2
Java&Spring記事人気No2
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.3
Java&Spring記事人気No3
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.4
Java&Spring記事人気No4
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.5
Java&Spring記事人気No5
React
ReactのState管理ベストプラクティス!初心者でもわかる再レンダリング最適化の考え方
No.6
Java&Spring記事人気No6
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.7
Java&Spring記事人気No7
React
ReactのContext APIでログイン状態を管理する方法を完全解説!初心者でもわかる認証機能の実装
No.8
Java&Spring記事人気No8
React
React Context APIの値を更新する方法!useStateと組み合わせてデータを動かす初心者ガイド