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イベント内でfetchやaxiosを使い、非同期(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を使わずに実装することもある。
基本的な属性ですが、データ通信の起点となる重要な部分なので、役割をしっかり押さえておきましょう!



コメント