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

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

ただいまの
回答率

90.51%

  • JavaScript

    16476questions

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

  • HTML

    9000questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 99

KEiGO_TANAKA

score 5

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>
コード
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2018/07/23 23:28

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

    キャンセル

  • KEiGO_TANAKA

    2018/07/24 01:33

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

    キャンセル

  • kei344

    2018/07/24 01:41

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

    キャンセル

回答 1

checkベストアンサー

+1

まず、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/24 10:10

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

    キャンセル

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    16476questions

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

  • HTML

    9000questions

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