JavaScriptを使用して条件分岐を行う方法について質問します

このQ&Aのポイント
  • 当方はJavaScriptに関してほとんど知識がありませんが、条件分岐を行いたいです。
  • ラジオボタンでAまたはBを選択し、指定のコードを入力することで送信先が変更されるフォームを作りたいです。
  • 初めての質問投稿なので、不適切な点があればご指摘ください。よろしくお願いいたします。
回答を見る
  • ベストアンサー

javascriptによる条件分岐についてご質問で

当方、javascriptに関してはほとんど無知のため お教えいただければと思っているのですが、 行いたいことは、以下のとおりです。 まずラジオボタンでA・Bのいずれかを選択します。 その後、テキストエリアにこちらが指定したコード(キャンペーンコードみたいなもの) を入力してもらいます。 ラジオボタンで選択したものと入力コードの 組み合わせによって、送信先(リンク先)が変更する といったようなフォームをつくりたいとおもっているのですが こういうフォームはjavascriptでも実装可能でしょうか? この質問コーナーも初めて使うので、もし無礼あれば申しつけください。 皆様、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>送信先(リンク先)が変更する 一般的には送付先は一つにしておいて、受けた側のサーバープログラムで 振り分けるのが妥当だとおもいますが? もちろんjavascriptでできないことはなく、 radioボタンのcheckedをみてvalueを確定して、その値と 手入力したキャンペーンコードの組合せから、想定する飛び先を actionに返すだけです。 <script> function setAction(f){ var check=""; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) check=f[i].value; } var code=f["code"].value; if(check=="a" && code=="xxx") f.action="bbb.htm"; if(check=="a" && code=="yyy") f.action="ccc.htm"; if(check=="b" && code=="xxx") f.action="ddd.htm"; if(check=="b" && code=="yyy") f.action="eee.htm"; } </script> <form action="aaa.htm" onSubmit="return setAction(this);"> <p> <input type="radio" name="check" value="a">a <input type="radio" name="check" value="b">b </p> <p> キャンペーンコード:<input type="text" name="code"> <input type="submit" value="go"> </p> </form> aを選んでコードがxxxならbbb.htm、aを選んでコードがyyyならccc.htm、 bを選んでコードがxxxならddd.htm、bを選んでコードがyyyならeee.htm、 それ以外はaaa.htm

guuusan
質問者

お礼

質問へのご回答ありがとうございます。 また、早々のご対応ありがとうございます。 サーバーの都合上、CGIやPHPを使うことができないサーバー だったのと、なんとかJSでできないものか? というのもあって、今回ご質問させていただきました。 本当にありがとうございます。 おかげさまでやりたいことができる環境になりました。

関連するQ&A

  • JavaScriptで次のような動作を実現したいと思います。

    JavaScriptで次のような動作を実現したいと思います。 【状況】 テキストフォームが1つ、セレクトボックス(空白、選択肢a、選択肢b)が1つ、ラジオボタンが2つある状況。 【動作】 ラジオボタンAを選択した場合は、テキストフォームもセレクトボックスも入力可能。 ラジオボタンBを選択した場合は、テキストフォームおよびセレクトボックスがクリア(空白)され、かつdisableとなる。 動作自体はシンプルだと思うのですが、上手く作れません。 ご存知の方がいらっしゃいましたら教えていただけますでしょうか。 よろしくお願いします。

  • 入力に応じて有効化をするJavaScript

    テキストボックスに1文字でも入力があった時のみラジオボタンを選択可能にし、テキストボックスに入力されるまではラジオボタンを無効化したいと思っています どのようにJavaScriptを書けばいいか全くわかりません お願いします

  • Javascriptでの表示切り替えについて。

    ただいま一人で勉強中の初心者です ラジオボタンの選択項目を変えたら、ひとつのテキストエリアの入力制限が変わるという処理を作りたいのですが、どのように作ればいいのでしょうか ラジオボタンがA,Bとあるとして、 Aを選択すると半角英数字しか入力できないテキストエリアになる。 Bを選択すると何でも入力できるテキストエリアになる。 ただし、表示されるテキストエリアはひとつのみ。 というものを作りたいです。 行き詰っています。助けてください

  • JavaScript の条件分岐?について

    メールフォーム内でドロップダウンメニューを使用しており 確認/修正等でフォーム画面に戻った時に選択されていた項目が 保持されるような設定で以下のような HTML 及び JavaScript を記述してます。 ( 実際には HTML 内で部分的に php echo を使用しております ) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>テスト</title> </head> <body> /* **************************************************************** 確認/修正等でフォーム画面に戻った時に入力した情報が消えない設定 ドロップダウンリスト用 **************************************************************** */ function MenuValue($v,$r) { if(!empty($_POST[$v])) { if($_POST[$v] == $r){ return " selected='selected'"; } } } <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> </body> </html> 上記ソースでブラウザ上で動作テストしますと ドロップダウンリスト内の項目を何も選択しなかった場合 FireFox Validator では 【 エラー: duplicate specification of attribute "SELECTED" 】 となってしまいます。 その時ブラウザ上で表示されてるページの HTML ソースを確認すると・・・ <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected selected='selected'>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> となっております。 未選択以外の項目を選択した場合はエラーは出ません。 なので Select属性 を外してみると FireFox Validator でのエラーは解消されますが Another HTML-lint gateway では 【 どの <OPTION> にも SELECTED属性 が指定されていません 】 と言われてしまうので SELECTED属性 は外したくありませんし・・・ 前出の JavaScript の条件付けを色々と変更して試してますが当方 JavaScript はあまり詳しくないのでどなたかご教授頂ければと思い 質問投稿させて頂きました。 どなたかご回答よろしくお願い致します。

  • フォームのテキストをリンク化するjavascript

    ブログ等で利用されている、フォームのテキストにリンクをつけるjavascriptを教えてください。 (詳細) フォームのテキストを選択し、ボタンを押すとURLを入力するwindowが開くjavascript よろしくお願いします。

  • Javascriptで複数のフォームを連結したい

    初めまして、 お世話になります。 Javascriptで複数のフォームを連結したいと考えています。 やっと2つのテキストエリアを連結させるところまで出来るようになりました。 やりたいことは、出力させるときに下記のようにしたいのですが、 どのようにすれば良いかご教授いただけば幸いです。 テキストエリア:text01とtext02を連結させて出力させる時に、 text01とtext02の間に”改行コード”を追加したいのです。 それとラジオボタンで選択をした値を取得するための、 スクリプの記述方法もご教授頂けないでしょうか? また、可能であればテキストエリア:outputに出力するときうに、 下記のように出来ると希望通りの操作が出来助かります。 HTMLを勉強し始めたばかりの初心者ですが、 どうぞ何卒よろしくお願い申し上げます。 出力結果: ----------------------------------------------------------------------- 【入力欄1】改行コード text01 改行コード 【入力欄2】改行コード text02 改行コード 【ラジオボタン】 A01 改行コード ソース: ----------------------------------------------------------------------- <html> <head> <script language="JavaScript"> <!-- function textoutput() { var text01 = (document. form01. text01.value); var text02 = (document. form01. text02.value); document. form01. output.value = text01 + text02; } //--> </script> </head> <body> <form name="form01"> <!--入力欄1// --> 入力欄1<br> <textarea name="text01" cols="60" rows="10"></textarea><br> <!--入力欄2// --> 入力欄2<br> <textarea name="text02" cols="60" rows="10"></textarea><br> <!--ラジオボタン// --> <strong>・ OS確認</strong><br /> <input type="radio" name="A01" value="・OS ⇒ XP" id="radio1-1" > <label for="radio1-1">XP</label> <input type="radio" name="A01" value="・OS ⇒ Vista" id="radio1-2"> <label for="radio1-2">Vista</label> <input type="radio" name="A01" value="・OS ⇒ Win7" id="radio1-3"> <label for="radio1-3">Win7</label> <input type="radio" name="A01" value="・OS ⇒ Mac" id="radio1-4"> <label for="radio1-4">Mac</label> <input type="radio" name="A01" value="・OS ⇒ " id="radio1-5"> <label for="radio1-5">その他</label> <br /> <!--ログ出力// --> ログ出力<br> <input type="button" value="ログ出力" onClick="textoutput();"><br> <textarea name="output" cols="60" rows="10"></textarea><br> </form> </body> </html>

  • CGI内での条件分岐について教えてください。

    CGI内での条件分岐について教えてください。 買い物カートCGIの中で下記のラジオボタンの選択において入力フォームを表示・非表示に切り替える質問をしたばかりですが、 <input type="radio" value="1" onclick="func1()" name="gift" checked />1ヶ所 <input type="radio" value="2" onclick="func2()" name="gift" />3ヶ所 <input type="radio" value="3" onclick="func3()" name="gift" />5ヶ所 今度は入力後の確認画面にて上記で選択された内容によって。。。 value1の場合は1ヶ所分の発送先住所、value2の場合は3ヶ所分の発送先住所・・・ と言った感じで表示をさせたいのですが、条件分岐に関してどのようにしたら良いのか分からず質問をさせて頂きます。 require "cgi-lib.pl"; ReadParse(*input_data); if ($input_data{'gift'} eq "1") {  ※value1で入力した1件分の発送先住所 } elsif ($input_data{'gift'} eq "2") {  ※value2で入力した3件分の発送先住所 } else {  ※value3で入力した5件分の発送先住所 } とか、試してみましたがだめでした(泣 CGI(Perl)に関しては初心者的で少々初心者レベルで触る程度の技術レベルです(汗 どうしたら良いのか教えてください。 思い当たる点は、そもそも条件式の中にある"gift"はどこかで指示を出さないとCGIの中で認識されていないのでは?とも思っています。 実際に上記の例でカートの確認ページを表示すると、 if ( eq "1") { } else ( eq "2") { } else { } と表示されるので素人ながらそう思いました。 質問がへたですが宜しくお願いします。

  • Javascriptフォーム形成

    javascriptを使って入力フォームを形成しようと考えています。 PHPからテキストボックスの数を8、テキストエリアの数を6と送って8それぞれの入力フォームを作成したいです。動的にフォーム形成したいです。 こんなことできますかね? 教えて下さい。よろしくお願いします。

  • Javascript 入力フォーム&コピー

    ホームページに下のような仕組みを取り入れたいと思っています。 各質問に対する回答をフォームに入力もしくはラジオボタンから選択して、回答ボタンをクリックすると、その下の大きなテキストボックスに質問と回答がまとめて表示される仕組みです。 その回答結果をクリップボードにコピーできるようにもしたいです。 お詳しい方よろしくお願いします。 好きな芸能人は? [入力フォーム1] 嫌いな芸能人は? [入力フォーム2] 気になるCMは?  [入力フォーム3] あなたの性別は? [ラジオボタンで選択] [回答ボタン] ──────────────── (回答が表示されるテキストボックス) 好きな芸能人:○○ 嫌いな芸能人:○○ 気になるCM:○○ 性別:○○ ──────────────── [回答まとめをコピー] [回答まとめをクリア]

  • フォームで入力した値を別のフォームにコピーする

    はじめまして! javascriptでフォームAに入力した内容を ボタンが押されたら同一ページのフォームBに ペーストされるscriptを作りたいのですが そういったスクリプトを公開しているものがあれば 教えていただきたいです。よろしくお願いいたします。 やりたい事: [フォームA]---------------------  お名前:テキスト  性別:ラジオボタン  趣味:セレクトボックス  コメント:テキストエリア  [コピーボタン]←内容をコピーするボタン -------------------------------- ↓コピーボタンが押されたら↓ [フォームB]---------------------  お名前:テキスト  性別:ラジオボタン  趣味:セレクトボックス  コメント:テキストエリア -------------------------------- Aフォームに入力した内容Bフォームに反映される よろしくお願いいたします。

専門家に質問してみよう