• ベストアンサー

プルダウン2つで別項目に値を代入したい

プルダウン項目を2つ選択し,その2つの値によって直ぐ下にあるテキスト項目に値を設定するプログラムを作りたいのですが,javaは初心者でなかなかうまくできません。(例:1と1なら50,1と2なら47みたいな…)onChangeを利用するのはなんとなく分かるのですが…非常に困ってます。誰か助けて下さい。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

結果の値を計算するロジックが不明ですが、とりあえず、方法としてはこんな感じ? 計算部分は、やりたい内容にあうように変えてください。 <html> <script type="text/javascript"> function hoge(){ var v1=document.getElementById('s1').value; var v2=document.getElementById('s2').value; var rslt; if (v1==1 && v2==1){ rslt=50; } else { if (v1==2 && v2==2) { rslt='others'; } else { rslt=47; }} document.getElementById('txt').value=rslt; } </script> <body> <select id="s1" onChange="hoge()"> <option value="1">1<option value="2">2 </select>   <select id="s2" onChange="hoge()"> <option value="1">1<option value="2">2 </select><p> <input type="text" id="txt" value=""> </body> </html>

h0130
質問者

お礼

まさにこの通りです。助かりました。ありがとうございます!

h0130
質問者

補足

またまたすみません。こんなの作ったんですがうまくいかないです。どこがおかしいですか? <html> <script type="text/javascript"> function hoge(){ var v1=document.getElementById('s1').value; var v2=document.getElementById('s2').value; var rslt; if (v1==1 && v2==1) { rslt=36; } else { if (v1==1 && v2==2) { rslt=29; } else { if (v1==1 && v2==3) { rslt=22; } else { if (v1==1 && v2==4) { rslt=14; } else { if (v1==1 && v2==5) { rslt=7; } else { if (v1==1 && v2==6) { rslt=0; } else { rslt='?'; }} document.getElementById('txt').value=rslt; } </script> <body> <select id="s1" onChange="hoge()"> <option value="1">1 <option value="2">2 <option value="3">3 <option value="4">4 </select>   <select id="s2" onChange="hoge()"> <option value="1">1 <option value="2">2 <option value="3">3 <option value="4">4 <option value="5">5 <option value="6">6 </select><p> <input type="text" id="txt" value=""> </body> </html>

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

ANo.1です。 スクリプトでは{}は対になっていますので、対応していなければなりません。ご提示の例では「{」が13個、「}」が9個なので、構文として解釈できないということになっています。 適切な場所に、}を追加することで、動作するものになりますよ。 条件判定が多くなるようなら、if文の羅列よりはもう少し他の方法を考えたほうが良いかも。

h0130
質問者

お礼

}付けたら動きました。他の方法…自分はまだ全然知識がないので羅列は気持ち悪いですがこれでやってみます。二度も質問に答えていただきありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A