この記事で分かること
form.actionを動的に変更する仕組み- ラジオボタン・セレクトボックスで送信先を切り替える方法
onsubmitと組み合わせた実務的なフォーム制御- 条件分岐による送信先切り替えの実践コード
form.action は、フォームの送信先 URL を参照・設定するためのプロパティです。
特に実務では、ユーザーの選択内容に応じて送信先を切り替えるケースが多く、動的なフォーム制御が欠かせません。
この記事では、ラジオボタン・条件分岐・onsubmit を使った「送信先の動的変更」に特化して解説します。
form.action を動的に変更するとは?
HTML の action="" は静的ですが、JavaScript を使うとユーザー操作に応じて送信先を切り替えられます。
- 問い合わせ種別によって送信先を変える
- アンケートの回答内容で送信先を分岐する
- 管理画面で処理先を切り替える
こうしたケースで form.action が活躍します。
実践例①:ラジオボタンで送信先を切り替える
もっともよく使われるパターンが、ラジオボタンによる送信先切り替えです。
<script>
function sendForm() {
const formElem = document.getElementById("form1");
// 「感想」が選択された場合
if (formElem.radio1[0].checked) {
if (!confirm("送信内容はご感想でよろしいですか?")) return false;
formElem.action = "impression.html";
}
// 「質問」が選択された場合
if (formElem.radio1[1].checked) {
if (!confirm("送信内容はご質問でよろしいですか?")) return false;
formElem.action = "question.html";
}
}
</script>
<form id="form1" onsubmit="return sendForm()">
<p>
<input type="radio" name="radio1" checked> 感想
<input type="radio" name="radio1"> 質問
</p>
<p><textarea name="text" cols="30" rows="5"></textarea></p>
<p>
<input type="submit" value="送信">
<input type="reset" value="クリア">
</p>
</form>
→ 選択内容に応じて form.action が切り替わります。
実践例②:セレクトボックスで送信先を切り替える
選択肢が多い場合はセレクトボックスが便利です。
const form = document.getElementById("form2");
const select = document.getElementById("category");
select.addEventListener("change", () => {
if (select.value === "contact") {
form.action = "contact.php";
} else if (select.value === "support") {
form.action = "support.php";
}
});
→ 選択肢が増えても管理しやすい方法です。
実践例③:条件分岐で送信先を切り替える
入力内容によって送信先を変えることもできます。
if (message.length < 20) {
form.action = "short.php";
} else {
form.action = "long.php";
}
→ 内容の長さ・値・チェック状態など、自由に条件を設定できます。
onsubmit と組み合わせると安全
送信直前に action を変更する場合は、onsubmit 内で処理するのが安全です。
ユーザーがボタンを押したタイミングで確実に送信先を切り替えられます。
JavaScript 初心者におすすめの学習書籍
書籍で学ぶのが向いている人
- 紙の本で体系的に学びたい
- ネット記事だけだと情報が断片的に感じる
- フォーム操作や DOM の基礎をしっかり理解したい
form.action の動的変更は、DOM 操作・イベント処理の理解が欠かせません。
書籍ではこれらを体系的に学べるため、実践コードの理解が深まります。
いちばんやさしい JavaScript の教本
写真や図が多く、手を動かしながら学べる初心者向けの入門書です。
DOM 操作・イベント処理の基礎が丁寧に解説されており、動的な送信先切り替えの理解に役立ちます。
この本で解決できること:
- フォームと入力欄の仕組みを視覚的に理解できる
- DOM を使った属性操作(
actionなど)の基礎が分かる - 実際に動くサンプルで学べるため挫折しにくい
確かな力が身につく JavaScript「超」入門
JavaScriptの基礎を体系的に学びたい方に向いている入門書です。
フォーム送信・イベント処理・条件分岐など、動的なフォーム制御に必要な基礎力が身につきます。
この本で解決できること:
- 動的な送信先切り替えの仕組みを体系的に理解できる
- DOM 操作・イベント処理の基礎が身につく
- 実務で使えるコードの書き方が学べる
動画で理解を深めたい方へ(Udemy講座)
動的な送信先切り替えは、実際の動きを動画で見ると理解が一気に深まります。
Udemy では DOM・イベント・条件分岐を丁寧に解説した講座が多数あります。
初心者のためのJavaScript 完全入門
JavaScriptの基礎を体系的に学べる人気講座です。
フォーム送信・イベント処理・DOM の基礎が丁寧に扱われており、動的変更の理解に役立ちます。
この講座で解決できること:
- フォーム送信の流れを視覚的に理解できる
actionの動的変更に必要な DOM 操作が分かる- 初心者がつまずきやすいポイントを丁寧に解説
→ 初心者のためのJavaScript 完全入門(Udemy)
超JavaScript 完全ガイド 2026
基礎から応用まで幅広く学べる講座で、動的なフォーム制御を深く理解したい方に最適です。
この講座で解決できること:
form.actionを使った送信先切り替えの実践的な書き方が身につく- 条件分岐・イベント処理など実務的なコードが学べる
- 現代的な DOM 操作をまとめて習得
体系的に学びたい方へ(スクールという選択肢)
独学の限界を感じやすいポイント
- 動的なフォーム制御(
actionの切り替え)が理解しきれない - DOM 操作・イベント処理の基礎が曖昧なまま進んでしまう
- 複雑な条件分岐の設計が難しい
- コードレビューを受ける機会がない
スクールでは、プロの講師が学習ロードマップを作成し、
form.action を含む動的なフォーム制御を
丁寧にサポートしてくれます。
無料相談で得られるメリット
- あなたのレベルに合わせた学習計画を作成
- 独学でつまずきやすい DOM 操作・条件分岐を事前に把握
- 学習方法の改善点をプロがアドバイス
- エンジニア転職を視野に入れたキャリア相談も可能
JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。
form.action の動的変更に関するよくある質問(FAQ)
ラジオボタン以外でも送信先を切り替えられる?
はい。セレクトボックス、チェックボックス、入力値の条件分岐など、あらゆる要素で切り替え可能です。
onsubmit と onclick はどちらを使うべき?
送信直前に確実に action を変更したい場合は onsubmit が推奨です。
action を変更しても HTML に反映されないのはなぜ?
JavaScript で変更されるのは DOM 上の値であり、HTML ソースには反映されないためです。
動的変更がうまく動かないときのチェックポイントは?
form の取得ミス、name 属性の指定漏れ、イベントの未設定などが原因になりやすいです。
まとめ
form.actionは送信先 URL を動的に変更できる便利なプロパティ- ラジオボタン・セレクトボックス・条件分岐などで送信先を切り替え可能
- 送信直前に変更したい場合は
onsubmitを使うと安全 - 動的変更が動かない場合は DOM 取得・
name属性・イベント設定を確認する