• ベストアンサー

javascriptの{}の表現は2つ可か不可か?

<!--HTMLここまで--> <!--問題--> <br> <hr> <br> <!--阪和線--> <body> <form name="semboku_f"> 出発駅は <select name="semboku_q1"> <option>選択肢</option> <option>中百舌鳥</option> <option>深井</option> <option>泉ケ丘</option> </select> です。 <p> 到着駅は <select name="semboku_q2"> <option>選択肢</option> <option>中百舌鳥</option> <option>深井</option> <option>泉ケ丘</option> </select> です。<p> <script> function fare_kotae() { fare_ten=0 if((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "深井")||(fare_f.fare_q1.value == "深井"&&fare_f.fare_q2.value == "中百舌鳥")) {fare_f.fare_q1.style.backgroundColor="aqua ";fare_ten = fare_ten + 3.7} else if((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "泉ケ丘")||(fare_f.fare_q1.value == "泉ケ丘"&&fare_f.fare_q2.value == "中百舌鳥")) {fare_f.fare_q1.style.backgroundColor="aqua ";fare_ten = fare_ten + 7.8} else fare_f.fare_q1.style.backgroundColor="red" fare_f.fare_tokuten.value=fare_ten if((fare_f.fare_tokuten.value=3)&&((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "深井")||(fare_f.fare_q1.value == "深井"&&fare_f.fare_q2.value == "中百舌鳥"))) {fare_f.fare_futsu_otona.value = Number("1000")} else if((fare_f.fare_tokuten.value=78)&&((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "泉ケ丘")||(fare_f.fare_q1.value == "泉ケ丘"&&fare_f.fare_q2.value == "中百舌鳥"))) {fare_f.fare_futsu_otona.value = Number("3000")} </script> とあるとき、 {fare_f.fare_futsu_otona.value = Number("1000")}は、1つしか並べませんか。 これができなくてすごく困っています。 詳細なjavascript分を省略せずにお書きください。

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

  • ベストアンサー
  • luka3
  • ベストアンサー率72% (424/583)
回答No.3

function fare_kotae() { fare_ten = 0; if ((fare_f.fare_q1.value=="中百舌鳥" && fare_f.fare_q2.value=="深井") || (fare_f.fare_q1.value=="深井" && fare_f.fare_q2.value=="中百舌鳥")) { fare_f.fare_q1.style.backgroundColor = "aqua"; fare_ten = fare_ten + 3.7; } else if ((fare_f.fare_q1.value=="中百舌鳥" && fare_f.fare_q2.value=="泉ケ丘") || (fare_f.fare_q1.value=="泉ケ丘" && fare_f.fare_q2.value=="中百舌鳥")) { fare_f.fare_q1.style.backgroundColor = "aqua"; fare_ten = fare_ten + 7.8; } else fare_f.fare_q1.style.backgroundColor = "red"; fare_f.fare_tokuten.value = fare_ten; if (fare_f.fare_tokuten.value==3 && ((fare_f.fare_q1.value=="中百舌鳥" && fare_f.fare_q2.value=="深井") || (fare_f.fare_q1.value=="深井" && fare_f.fare_q2.value=="中百舌鳥"))) { fare_f.fare_futsu_otona.value = Number("1000"); fare_f.fare_futsu_shoni.value = Number("1000"); } else if (fare_f.fare_tokuten.value==7.8 && ((fare_f.fare_q1.value=="中百舌鳥" && fare_f.fare_q2.value=="泉ケ丘") || (fare_f.fare_q1.value=="泉ケ丘" && fare_f.fare_q2.value=="中百舌鳥"))) { fare_f.fare_futsu_otona.value = Number("3000"); fare_f.fare_futsu_shoni.value = Number("3000"); } } こういうことですかね? 見た目をちょっと自分好みに変えました。 あと >if(fare_f.fare_tokuten.value=3 … の …value=3 は …value==3 に変更しました。 そもそもフォームがsemboku_fとfare_fのほか、HTMLとJavaScriptで使っている名前が全然違うので、回答者は動作テストもできない中で大部分を想像しながら解答を模索しています。 質問も >{fare_f.fare_futsu_otona.value = Number("1000")}は、1つしか並べませんか。 だけだと何をしたいのかわからないのです。 『{fare_f.fare_futsu_otona.value = Number("1000");}の後ろに  {fare_f.fare_futsu_shoni.value = Number("1000");}を行いたい』 ということで良かったんでしょうか?

その他の回答 (2)

  • luka3
  • ベストアンサー率72% (424/583)
回答No.2

>ただ、どう考えても、cssやjsの基本は、必ず, など、必ず何かをつなげることが必要です。 JavaScript文法として、処理の最後には ; を付けます。1処理ごとに付けます。 >{fare_f.fare_q1.style.backgroundColor="aqua ";fare_ten = fare_ten + 3.7} ここで、; で区切って処理を2つ記述されてますよね。 ; を付けないと基本的にエラーになります。 『3.7』の後ろにもつけるべきですが、ここでは後ろに処理がないためエラーが出ないと思います。 (余談ですが "aqua " に余分なスペースが入ってます) 最初の fare_ten=0 のところで fare_ten=0; にしないとエラーになると思うのですが、最近は改行が来るところは省略できるようになったのでしょうか。 ですので、No.1さんの条件式でいくと if(条件式1) { 処理A; 処理X; } else if(条件式2) {処理B;} というようになる、というイメージです。 処理の最後に ; がくるのは文法の基本なので、処理に含まれるものとして省略して書くのが普通でしょう。

semboku_love
質問者

補足

<!--HTMLここまで--> <!--問題--> <br> <hr> <br> <!--阪和線--> <body> <form name="semboku_f"> 出発駅は <select name="semboku_q1"> <option>選択肢</option> <option>中百舌鳥</option> <option>深井</option> <option>泉ケ丘</option> </select> です。 <p> 到着駅は <select name="semboku_q2"> <option>選択肢</option> <option>中百舌鳥</option> <option>深井</option> <option>泉ケ丘</option> </select> です。<p> <script> function fare_kotae() { fare_ten=0; if((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "深井")||(fare_f.fare_q1.value == "深井"&&fare_f.fare_q2.value == "中百舌鳥")) {fare_f.fare_q1.style.backgroundColor="aqua";fare_ten = fare_ten + 3.7} else if((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "泉ケ丘")||(fare_f.fare_q1.value == "泉ケ丘"&&fare_f.fare_q2.value == "中百舌鳥")) {fare_f.fare_q1.style.backgroundColor="aqua";fare_ten = fare_ten + 7.8} else fare_f.fare_q1.style.backgroundColor="red" fare_f.fare_tokuten.value=fare_ten if((fare_f.fare_tokuten.value=3)&&((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "深井")||(fare_f.fare_q1.value == "深井"&&fare_f.fare_q2.value == "中百舌鳥"))) {fare_f.fare_futsu_otona.value = Number("1000");} else if((fare_f.fare_tokuten.value=7.8)&&((fare_f.fare_q1.value == "中百舌鳥"&&fare_f.fare_q2.value == "泉ケ丘")||(fare_f.fare_q1.value == "泉ケ丘"&&fare_f.fare_q2.value == "中百舌鳥"))) {fare_f.fare_futsu_otona.value = Number("3000");} </script> とあるとき、 {fare_f.fare_futsu_otona.value = Number("1000"); {fare_f.fare_futsu_shoni.value = Number("1000");}にしたいですが、無理なんですね。 無理‼ヽ(`Д´)ノプンプン 諦めます。

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

全部引用すると長くて読みにくいので、質問中のfare_f.fare_tokuten.value=fare_tenより後のif〜else if文を簡略化して書きます。{処理A}が元のコードの{fare_f.fare_futsu_otona.value = Number("1000")}の部分です。 if(条件式1) {処理A} else if(条件式2) {処理B} { }の部分を並べるというのは下記のような書き方がしたいということでしょうか。{処理X}の行を追加していますが、これは文法違反です。 if(条件式1) {処理A} {処理X} else if(条件式2) {処理B} 条件式1が真のときに処理Aと処理Xの2つを実行したい場合は下記のように書きます。 if(条件式1) { 処理A 処理X } else if(条件式2) {処理B} 上記の推測が外れだった場合は補足説明をお願いします。質問者さんがどのような結果を得たいのか、質問文にあった情報だけでは回答者には分からないからです。

semboku_love
質問者

補足

if(条件式1) { 処理A 処理X } else if(条件式2) {処理B} にしました。 ただ、どう考えても、cssやjsの基本は、必ず, など、必ず何かをつなげることが必要です。 僕にはその知識がないので、それをお願いします。 答えて‼ヽ(`Д´)ノプンプン

関連するQ&A