【HTML】いまさら聞けない
の action 属性って何?

HTML

Webサイトで問い合わせフォームやログイン画面を作る際、必ず目にする <form> タグ。

その中でも特に重要な action 属性について、役割や書き方をシンプルにまとめました。

1. action 属性の役割とは?

action 属性を一言で表すと、「フォームに入力されたデータを、どこのプログラム(URL)に送信するか」を指定する属性です。

ユーザーが「送信」ボタンを押したとき、ブラウザは action で指定された宛先にデータを送ります。

2. 基本的な書き方

HTML
<form action="URL" method="POST">
  <button type="submit">送信</button>
</form>

指定するURLのパターン

action に指定するパス(URL)には、主に以下の3パターンがあります。

指定方法どんな時に使う?
絶対パスaction="https://example.com/api/contact"外部のサービスや、完全に異なるドメインのサーバーにデータを送る場合
相対パスaction="/search.php"action="thanks.html"同じWebサイト内の別ページや、特定の処理プログラム(PHPなど)に送る場合
空欄(省略)action=""(または属性自体を書かない)現在のページと同じURLにデータを送る場合(※後述の注意点あり)

3. action を空(省略)にした場合の挙動と注意点

action="" と書いたり、action 属性自体を省略したりすると、ブラウザは「現在表示しているページ(自分自身)」にデータを送信します。

WordPressやモダンフロントエンドでの実装

  • PHP / WordPress: 同じページ内で入力エラーのチェックと再表示を行う際によく使われます。
  • JavaScript(React / Vue / Next.jsなど): 最近のフロントエンド開発では、action を使わずに JavaScript の onSubmit イベント内で fetchaxios を使い、非同期(API経由)でデータを送る手法が主流です。この場合、action 属性は省略されるか、送信をキャンセルする処理(e.preventDefault())が挟まれます。

4. よくある間違い・チェックポイント

  • method 属性との組み合わせ
    action は「どこに送るか(宛先)」ですが、「どうやって送るか(手段)」を決める method="POST" または method="GET" とセットで正しく設定されているか確認しましょう。個人情報やパスワードを送る場合は必ず POST を使用します。
  • ボタンの type="submit"
    フォーム内に送信ボタンを置くときは、<button type="submit"> または <input type="submit"> になっている必要があります。type="button" だと action が発火しません。

まとめ

  • action はデータの送信先(URL)を指定するもの。
  • 省略すると現在のページに送信される。
  • JavaScriptで非同期送信する場合は、action を使わずに実装することもある。

基本的な属性ですが、データ通信の起点となる重要な部分なので、役割をしっかり押さえておきましょう!

コメント