• 締切済み

テキストボックスの数値結果によってリンク先を変えたい。

JavaScriptを使ったアンケートページを作っています。 最終的な点数合計によってリンク先を変えたいと思っているのですが、そこで行き詰っています。 アンケートの合計点数が下記の4つのテキストボックス(controller,analyzer,promoter,supporter)に出力される状態になっています。 いろいろなサイトを回って下記の様なスクリプトを書いてみたのですが、どうしてもエラーになってしまいます。 (因みにリンク先は仮のものになっています。) <script type="javascript"> <!-- function jump(){ var c = Number(f.controller.value); var a = Number(f.Analyzer.value); var p = Number(f.promoter.value); var s = Number(f.supporter.value); if ((c>a) && (c>p) && (c>s)) { location.href="http://www.yahoo.co.jp/"; } else { if ((a>c) && (a>p) && (a>s)){ location.href="http://www.google.co.jp/"; } else { if ((p>c) && (p>a) && (p>s)){ location.href="http://www.goo.ne.jp/"; } else { { location.href="http://www.megamax.co.jp/"; } } // --> </script> <input type="text" name="controller" size=2> <input type="text" name="analyzer" size=2> <input type="text" name="promoter" size=2> <input type="text" name="supporter" size=2><br> <input type="submit" name="shindan" value="診断!" onClick="jump()"> どこか間違っているのかと思うのですが、初心者なもので間違い自体が発見できません。 改善点、または、別の方法で何か良い方法がありましたら宜しくお願い致します。

みんなの回答

回答No.1

この部分の{と}の数がおかしいです。 {が7個、}が4個あって、つりあっていません。 if ((c>a) && (c>p) && (c>s)) { location.href="http://www.yahoo.co.jp/"; } else { if ((a>c) && (a>p) && (a>s)){ location.href="http://www.google.co.jp/"; } else { if ((p>c) && (p>a) && (p>s)){ location.href="http://www.goo.ne.jp/"; } else { { location.href="http://www.megamax.co.jp/"; }

noname#209628
質問者

お礼

早速ご回答いただきましてありがとうございます! ですが、下記の様に書き換えてみたのですがやはり結果は同じでした。 何か他に考えられる点はございますでしょうか? if ((c>a) && (c>p) && (c>s)) { location.href="​http://www.yahoo.co.jp/";​ } else { if ((a>c) && (a>p) && (a>s)){ location.href="​http://www.google.co.jp/";​ }} else { if ((p>c) && (p>a) && (p>s)){ location.href="​http://www.goo.ne.jp/";​ }} else { { location.href="​http://www.megamax.co.jp/";​ }} }

noname#209628
質問者

補足

現在、別の掲示板(http://www.tagindex.com/cgi-lib/q4bbs/patio.cgi?mode=view&no=1444)でも同様の質問をしておりまして、ご回答いただきました内容を参考に下記のような記述をしたのですが、またエラーメッセージが出てしまっている状態です。 1 <html> 2 <head> 3 <title>無題ドキュメント</title> 4 5 <script type="javascript" charset="Shift-JIS"> 6 7 function jump(){ 8 var c = Number(f.controller.value); 9 var a = Number(f.analyzer.value); 10 var p = Number(f.promoter.value); 11 var s = Number(f.supporter.value); 12 13 if ((c>a) && (c>p) && (c>s)) { 14 location.href="http://www.yahoo.co.jp/"; 15 }else if((a>c) && (a>p) && (a>s)){ 16 location.href="http://www.google.co.jp/"; 17 }else if((p>c) && (p>a) && (p>s)){ 18 location.href="http://www.goo.ne.jp/"; 19 }else { 20 location.href="http://www.yahoo.com/"; 21 } 22 } 23 </script></head> 24 <body bgcolor="#FFFFFF" text="#000000"> 25 26 <form id="f" action="#"> 27 28 C<input type="text" name="controller" size=2> 29 A<input type="text" name="analyzer" size=2> 30 P<input type="text" name="promoter" size=2> 31 S<input type="text" name="supporter" size=2><br> 32 33 <input type="button" name="shindan" value="診断!" onClick="jump()"> 34 <input type="reset" name="reset" value="やりなおし!"> 35 </form> 36 </body> 37 </html> エラー確認方法を使ってエラーを確認してみましたところ、以下のメッセージが出てまいりました。 ライン:33 文字:1 エラー:オブジェクトを指定してください。 コード:0 関数のスペルミスなどの場合が多いとのことでしたので探してみたのですが、functionなどもあっている為またしても暗礁に乗り上げてしまっております。何か良い方法がございましたらご教授くださいませ。 また、DOM1で標準化された方法を覚える様にご指摘を受けましたので、DOM1という物について調べ様と思っております。

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

関連するQ&A