現役システムエンジニアの備忘録

技術スキルや用語などの記録を残していきます

Form(フォーム操作)

【JavaScript入門】form.actionで送信先を動的に変更する方法|ラジオボタン・条件分岐の実践サンプル付き

投稿日:2019年5月31日 更新日:

この記事で分かること

  • 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 操作をまとめて習得

超JavaScript 完全ガイド 2026(Udemy)

体系的に学びたい方へ(スクールという選択肢)

独学の限界を感じやすいポイント

  • 動的なフォーム制御(action の切り替え)が理解しきれない
  • DOM 操作・イベント処理の基礎が曖昧なまま進んでしまう
  • 複雑な条件分岐の設計が難しい
  • コードレビューを受ける機会がない

スクールでは、プロの講師が学習ロードマップを作成し、
form.action を含む動的なフォーム制御を
丁寧にサポートしてくれます。

無料相談で得られるメリット

  • あなたのレベルに合わせた学習計画を作成
  • 独学でつまずきやすい DOM 操作・条件分岐を事前に把握
  • 学習方法の改善点をプロがアドバイス
  • エンジニア転職を視野に入れたキャリア相談も可能

JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。

DMM WEBCAMP 学習コース(無料相談はこちら)



form.action の動的変更に関するよくある質問(FAQ)

Q1

ラジオボタン以外でも送信先を切り替えられる?

A

はい。セレクトボックス、チェックボックス、入力値の条件分岐など、あらゆる要素で切り替え可能です。

Q2

onsubmitonclick はどちらを使うべき?

A

送信直前に確実に action を変更したい場合は onsubmit が推奨です。

Q3

action を変更しても HTML に反映されないのはなぜ?

A

JavaScript で変更されるのは DOM 上の値であり、HTML ソースには反映されないためです。

Q4

動的変更がうまく動かないときのチェックポイントは?

A

form の取得ミス、name 属性の指定漏れ、イベントの未設定などが原因になりやすいです。



まとめ

  • form.action は送信先 URL を動的に変更できる便利なプロパティ
  • ラジオボタン・セレクトボックス・条件分岐などで送信先を切り替え可能
  • 送信直前に変更したい場合は onsubmit を使うと安全
  • 動的変更が動かない場合は DOM 取得・name 属性・イベント設定を確認する



関連記事

【JavaScript入門】Formオブジェクトの使い方|forms配列・フォーム名の参照方法をわかりやすく解説

この記事で分かること Form オブジェクトとは何か document.forms 配列の役割と使い方 フォームを名前・番号で参照する方法 フォーム総数の取得方法(forms.length) form …

【JavaScript入門】onresetの使い方|フォームリセット時に確認ダイアログを表示する方法

この記事で分かること onreset イベントの役割 リセット直前に処理を実行する方法 return false によるリセット中止の仕組み 確認ダイアログで誤操作を防止する方法 実際のフォームでの …

【JavaScript入門】form.elementsの使い方|エレメント参照・種類判別・lengthの基本を解説

この記事で分かること form.elements の基本的な役割 name とインデックス番号によるエレメント参照方法 elements.length で総数を取得する方法 element.type …

【JavaScript入門】form.actionとは?送信先URLの取得・設定を基礎からわかりやすく解説

この記事で分かること form.action の基本的な役割 送信先 URL の取得方法と設定方法 HTML の action 属性との違い 最低限知っておくべきフォーム送信の仕組み form.act …

【JavaScript入門】checked・selectedの使い方|チェック状態・選択状態を取得・設定する方法

この記事で分かること checked の基本的な役割 selected の基本的な役割 チェック状態・選択状態の取得方法 JavaScript で状態を変更する方法 checked と selecte …

このブログは Xserver 上の WordPress で運用しています。
表示速度が速く、安定しているのでブログ初心者にもおすすめです。

レンタルサーバー エックスサーバー

-Form(フォーム操作)

執筆者: