1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ReactAdvent Calendar 2024

Day 25

【React】フォームでsubmitボタンが2つある場合の処理の分け方

Last updated at Posted at 2024-12-24

はじめに

今まで1つのフォームにsubmitボタンは1つしか表示したこと無かったのですが、2つ表示したい場面があり、処理の分岐に困ったので備忘録として残します。

コード

event.nativeEvent.submitterでクリックしたボタンの要素を取得して、処理を分岐させてます。

import React from 'react';

export const MyForm = () => {
  const handleSubmit = (event) => {
    event.preventDefault();

    // クリックしたボタンの要素
    const clickedButton = event.nativeEvent.submitter;

    if (clickedButton.id === 'button1') {
      // ボタン1がクリックされた時の処理
    }

    if (clickedButton.id === 'button2') {
      // ボタン2がクリックされた時の処理
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      {/* フォーム要素 */}
      <button type="submit" id="button1">
        ボタン1
      </button>
      <button type="submit" id="button2">
        ボタン2
      </button>
    </form>
  );
};

まとめ

そもそもsubmitボタンではなく、片方をクリックイベントにすれば良いだけですが、submitterプロパティの存在を初めて知って感動したので記事にしました。

参考記事

最後に

GoQSystemでは一緒に働いてくれる仲間を募集中です!

ご興味がある方は以下リンクよりご確認ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?