HTML
formが送信されない
action属性やmethod属性が未設定
こんな症状
フォームの送信ボタンを押してもデータが送られない。フォームのaction属性やJavaScriptの設定に問題があるときに起きるよ。
まず試す
<form> に action(送信先URL)と method を指定し、type=submit のボタンを置く。
html
<form action="/api" method="POST">
<input type="text" name="q">
<button type="submit">送信</button>
</form>これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓送信ボタンを押しても何も起きない
→ <form> に action 属性があるか、type=submit のボタンがあるか確認する。 - ✓JSで送信を制御している
→ submit イベントで preventDefault() を呼ぶと既定送信が止まる。fetch() 等で手動送信するか、preventDefault を外す。 - ✓送信されているか分からない
→ DevToolsのNetworkタブでリクエストが飛んでいるか確認する。
なぜ起きる?
<form>タグにaction属性(送信先URL)が書かれていないと、ブラウザはデータをどこに送ればいいかわからないよ。また、JavaScriptでsubmitイベントにpreventDefault()が呼ばれていると、フォームのデフォルト送信動作が止められているんだ。
✕ エラーが起きるコード
<form><input type="text"></form>
<!-- submit ボタンがない -->✓ 直したコード
<form action="/api"><input type="text"><button type="submit">送信</button></form>✅ 直ったか確認
送信ボタンで Networkタブにリクエストが出る、または期待した遷移・レスポンスが返ればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- buttonクリックでページがリロードされる — form内のbuttonがデフォルトでsubmitになる
- フォームの送信ボタンが反応しない(buttonのtype属性) — ボタンとformの紐づきに問題がある
- required属性が効かない(フォームバリデーション) — 送信のしかたがバリデーションを通っていない
- 画像が表示されない — 画像パスが間違っている
- ページのレイアウトが崩れる — タグの閉じ忘れ
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- HTMLとは?初心者向けにわかりやすく解説 — タグの書き方・ページ構造の基本
- HTMLのパス(相対パス・絶対パス)の書き方 — パスの書き方を初心者向けに解説