質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1018閲覧

selectで選択された数字から条件分岐で数字をフォームの中に出力したい

KEiGO_TANAKA

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/07/23 12:51

selectで選択された数字から条件分岐で数字を”_text”のフォームの中に出力したいです。

javascriptはプロゲートレベルです。よろしくお願いいたします。

function keisan(){ var price5 = document.form1.goods5.options[document.form1.goods5.selectedIndex].value; var price7 = document.form1.goods7.options[document.form1.goods7.selectedIndex].value; if (parseInt(price5) == 0 && parseInt(price7) == 20){ document.write(6370000,form._text.value); }else if(parseInt(price5) == 1 && parseInt(price7) == 20){ document.write(19500000); }else if(parseInt(price5) == 2 && parseInt(price7) == 20){ document.write(22490000); }else if(parseInt(price5) == 3 && parseInt(price7) == 20){ document.write(23400000); }else if(parseInt(price5) == 0 && parseInt(price7) == 30){ document.write(7410000); }else if(parseInt(price5) == 1 && parseInt(price7) == 30){ document.write(20540000); }else if(parseInt(price5) == 2 && parseInt(price7) == 30){ document.write(23530000); }else if(parseInt(price5) == 3 && parseInt(price7) == 30){ document.write(34570000); }else if(parseInt(price5) == 0 && parseInt(price7) == 40){ document.write(8450000); }else if(parseInt(price5) == 1 && parseInt(price7) == 40){ document.write(21190000); }else if(parseInt(price5) == 2 && parseInt(price7) == 40){ document.write(24570000); }else if(parseInt(price5) == 3 && parseInt(price7) == 40){ document.write(25350000); }else if(parseInt(price5) == 0 && parseInt(price7) == 50){ document.write(11700000); }else if(parseInt(price5) == 1 && parseInt(price7) == 50){ document.write(24700000); }else if(parseInt(price5) == 2 && parseInt(price7) == 50){ document.write(27300000); }else if(parseInt(price5) == 3 && parseInt(price7) == 50){ document.write(28600000); }else { document.write("選択してください"); } } ////HTML//// <input type="text" name="_text" size="15" value="0"> <li class="q">①あなたの年齢は? <div class="q1"> <form action="#" name="form1"> <select name="goods7" onChange="keisanif()"> <option value="0">---</option> <option value="20">20代</option> <option value="30">30代</option> <option value="40">40代</option> <option value="50">50代</option> </select> </div> </li> <li class="q">②お子さんの人数は? <div class="q2"> <select name="goods5" onChange="keisans()" onChange="keisanif()"> <option value="00">---</option> <option value="0">0人</option> <option value="1">1人</option> <option value="2">2人</option> <option value="3">3人以上</option> </select> </div> </li> コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/07/23 14:28

「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
KEiGO_TANAKA

2018/07/23 16:33

ご指摘ありがとうございます。追記いたしました。
kei344

2018/07/23 16:41

こちらの環境では変更/修正が確認できませんでした。すみませんが、もう一度確認してもらえませんか?最近teratailで修正が保存されない事がたまにあるようなので・・・。
guest

回答1

0

ベストアンサー

まず、onChange="keisanif()"となっていますが関数名がkeisanなので呼ばれません。
onChange="keisan()"とすることでselectが選択された際にkeisanの処理が行われます。

次にif文で条件分岐後にdocument.write()としていますがこちらは文字列を表示するものなので
テキストボックスの値を書き換える処理にする必要があります。
値を書き換えるのはいくつか方法がありますが例えば以下のようなものになります。

<script> function keisan(){ document.myForm._text.value = "55555"; // 1.formの名称で指定 document.getElementById("target").value = "green"; // 2.getElementByIdで指定 } </script> <form name="myForm"> <input type="text" id="target" name="_text" size="15" value="0"> </form>

「javascript テキストボックス 値 変更」などと検索すると以下のような解説サイトが出てくるのでご参考までに。
https://itsakura.com/js-textbox

補足:質問内容とは直接関係ありませんが"00"をparseIntすると0になってしまうので
"00"と"0"の区別がつかなくなって上手く分岐できなくなると思いますので
値を変えるか条件部分を変える必要があるかもしれません。

投稿2018/07/23 17:03

razuma

総合スコア1313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KEiGO_TANAKA

2018/07/24 01:10

ご丁寧にありがとうございます。 おかげさまでフォームの方に出力することができました! 補足情報も参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問