• 締切済み

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

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()"> どこか間違っているのかと思うのですが、初心者なもので間違い自体が発見できません。 改善点、または、別の方法で何か良い方法がありましたら宜しくお願い致します。

noname#209628
noname#209628

みんなの回答

回答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

  • テキストボックスから、mailto

    ボタンからメール作成画面を起動させて、宛先と本文を入れておきたいです。 <INPUT type="button" value="メール" onclick="location.href='mailto:test_at_aaa.ne.jp?body=本文'"> <input type="text" value="" id="text1" name="text1"> <input type="text" value="" id="text2" name="text2"> text1の内容を本文、text2の内容をアドレスに 入れる事は出来るでしょうか? アットマークはサポート確認中になるので_at_で表しています。

  • 追加したテキストボックスとテキストエリアの数の制御

    下記のようにテキストボックスとテキストエリアの数をボタンを押すことによって増やしていきます。 で、テキストボックスとテキストエリアは最大10個までとしたいのですが、どのようにしたらいいでしょうか? あとテキストエリアを追加していくとテキストエリアとテキストエリアの間が詰まってしまいます。間を空ける方法はないでしょうか? <script type="text/javascript"> function myAdd(){ var oTR=document.createElement("tr"); var c=count("mat"); var names=["mat","qua"]; for(var i in names){ var oTD = document.createElement("td"); var oTag = document.createElement("input"); oTag.setAttribute("type", "text"); oTag.setAttribute("name", names[i] + (c+1).toString()); oTD.appendChild(oTag); oTR.appendChild(oTD); } document.getElementById("t0").getElementsByTagName("tbody")[0].appendChild(oTR); } function count(name){ var tags=document.getElementsByTagName("input"); var c=0; var reg=RegExp("^"+name+"[0-9]+$"); for(var i=0;i<tags.length;i++){ if(tags[i].name.match(reg)){ c++; } } return c; } var tag_num = 4; function myTextAreaAdd(){ var oTag = document.createElement("textarea"); oTag.setAttribute("name", "foo" + tag_num++); var oDiv = document.getElementById("area"); oDiv.appendChild(oTag); } </script> </head> <body><form method="post" enctype="multipart/form-data" action="check.php"> <table id="t0" border> <tbody> <tr><td><input type="text" name="mat1" value=""></td> <td><input type="text" name="qua1" value=""></td> </tr> <tr><td><input type="text" name="mat2" value=""></td> <td><input type="text" name="qua2" value=""></td> </tr> <tr><td><input type="text" name="mat3" value=""></td> <td><input type="text" name="qua3" value=""></td> </tr> <tr><td><input type="text" name="mat4" value=""></td> <td><input type="text" name="qua4" value=""></td> </tr> </tbody> </table> <input type="button" value="追加する" onClick="myAdd()"> <br /> <span id="area"> <textarea name="foo1"></textarea> <textarea name="foo2"></textarea> <textarea name="foo3"></textarea> <textarea name="foo4"></textarea> </span><br /> <input type="button" value="追加する" onClick="myTextAreaAdd()"><br /> </form>

  • リンク文字クリックでラジオボタン選択、テキストボックス表示したい

    次のようにハイパーリンク文字列、ラジオボタン、テキストボックスが並んでいます。 <html> <head></head> <body> <a href="#">りんご</a> <a href="#">みかん</a> <a href="#">いちご</a> <input type="radio" name="select" value="0" checked >りんご <input type="radio" name="select" value="1">みかん <input type="radio" name="select" value="2">いちご <input size="40" name="label" type="text" value="りんご" readonly> </body> </html> ここで、各ハイパーリンク文字列をクリックした瞬間に、 (1) 該当するラジオボタンが選択される (2) ラベルがテキストボックスに表示される というように動作させたいのです。 また、<a href="#">とすると画面を再読み込みしてしまうようなので、 再読み込みされない書き方についてもご教示いただけますとまことに 幸いです。よろしくお願い致します。

  • フォームのリンクについて

    nyuryoku.php <form method="POST" action="kakunin.php"> <p> </p> <p><a href="変更フォーム"><img border="0" src="henkou.gif"></a><a href="会社フォーム"><img border="0" src="kaisya.gif"></a></p> <p>変更フォーム</p> <p>名前<input type="text" name="T1" size="20"></p> <p>住所<input type="text" name="T2" size="20"></p> <p>TEL<input type="text" name="T3" size="20"></p>  <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <p>会社フォーム</p> <p>会社名<input type="text" name="T4" size="20"></p> <p>会社住所<input type="text" name="T5" size="20"></p> <p>会社TEL<input type="text" name="T6" size="20"></p> <p> </p> <p><input type="submit" value="送信" name="B1"><input type="reset" value="リセット" name="B2"></p> </form> <form>から</form>の中に変更フォームと会社フォームがあり henkou.gifをクリックすると画面上に変更フォームが現れて、kaisya.gifをクリックすると会社フォームが表れるようにしたいのです。 そして入力された情報は<input type="submit" value="送信" name="B1">で一度に送信できるようにしたいのですが、 henkou.gifとkaisya.gifにどういう風にリンクをはり各フォームだけを表示するにはどうしたらいいでしょうか?

    • ベストアンサー
    • PHP
  • リンクテキストをボタンに変更するには?

    リンクテキストをボタンに変更するには? ヤフーの「トップ」とグーグルの「画像」をボタンをクリックしたらジャンプするようにしたいのですが、方法をご伝授ください。よろしくおねがいします。 <!--ヤフー--> <FORM action="http://search.yahoo.co.jp/bin/search" method="get"> <INPUT type="TEXT" name="p" size="24" id="p"> <INPUT type="SUBMIT" value="Yahoo!" style="font-weight:bold"> <A href="http://www.yahoo.co.jp/" >トップ</A> <A href="http://www.yahoo.co.jp/" ><br></A> </FORM> <!--グーグル--> <form method=GET action=http://www.google.co.jp/search> <input maxLength="300" size="24" name="q">&nbsp; <input type="submit" value="Google" name="btnG" style="font-weight: bold"> <input type="hidden" name=lr1 valuelang-ja checked value="1"> <input type="submit" value="公式HP" name="btnI" style="font-weight: bold" > <a href="http://www.google.co.jp/imghp?q=&amp;ie=UTF-8&amp;oe=UTF-8&amp;hl=ja&amp;lr="><b>画像</b></a> </form>

    • ベストアンサー
    • HTML
  • selectメニューによるチェックボックスの表示・非表示

    リストメニューで選択された項目がアクティブになるようなフォームを作成したいと考えています。 下記コードの上部チェックボックスがselectメニューになっているようなものです。 JavaScriotに関して未熟者ですので、どなたか参考になるご意見/回答を頂けませんでしょうか?宜しくお願いいたします。 <html> <head> <title></title> <script type="text/javascript"> <!-- // 制御用フラグ // 0なら対象グループは無効(disabled)、1以上なら有効 var FLAG = { 'A':0, 'B':0, 'C':0, 'E':0 }; // 初期化 window.onload = function(){ var controlList = document.getElementById('ctr_FLAG').getElementsByTagName('input'); for(var i=0;controlList[i];i++){ if(controlList[i].checked){ var nameList = controlList[i].value.split(/,/); for(var j=0;nameList[j];j++){ FLAG[ nameList[j] ]++; } } } for(var x in FLAG) { fchk2_sub(x); } } // チェックが変更されたら function fchk2(obj) { nameList = obj.value.split(/,/); for(var i=0;nameList[i];i++) { if(obj.checked) { FLAG[nameList[i]]++; } else { FLAG[nameList[i]]--; } fchk2_sub(nameList[i]); } } // disableの変更 function fchk2_sub(groupe_name,dsiabled_value){ var inputList = document.getElementById('gr_'+groupe_name).getElementsByTagName('input'); for(var i=0;inputList[i];i++) { inputList[i].disabled = FLAG[groupe_name]>0?false:true; } } //--> </script> </head> <body> <form name='form2' action='#'> <p id="ctr_FLAG"> <input type='checkbox' name='chk1' value='A' onclick='fchk2(this)' > Aをアクティブに<br> <input type='checkbox' name='chk1' value='A,B' onclick='fchk2(this);' > AとBをアクティブに<br> <input type='checkbox' name='chk1' value='A,B,C' onclick='fchk2(this);'> AとBとCをアクティブに<br> <input type='checkbox' name='chk12' value='A,B,C,E' onclick='fchk2(this);'> AとBとCとDをアクティブに</p> <p>=====================</p> <p id="gr_A"> <input type='checkbox' name='a1' value='1'> 選択肢A<br> <input type='checkbox' name='a2' value='1'> 選択肢A<br> <input type='checkbox' name='a3' value='1'> 選択肢A<br> </p> <p id="gr_B"> <input type='checkbox' name='b1' value='1'> 選択肢B<br> <input type='checkbox' name='b2' value='1'> 選択肢B<br> <input type='checkbox' name='b3' value='1'> 選択肢B<br> </p> <p id="gr_C"> <input type='checkbox' name='c1' value='1'> 選択肢C<br> <input type='checkbox' name='c2' value='1'> 選択肢C<br> <input type='checkbox' name='c3' value='1'> 選択肢C<br> </p> <p id="gr_E"> <input type='checkbox' name='e1' value='1'> 選択肢E<br> <input type='checkbox' name='e2' value='1'> 選択肢E<br> <input type='checkbox' name='e3' value='1'> 選択肢E </p> </form> </body> </html>

  • テキストボックスのvalue属性でlocation.hrefをする

    <script type="text/javascript"> function jumpPage(){ location.href = "http://hogemoge.com/foo/" + document.urlform.url.value; } </script> <form name="urlform"> <input type="text" id="url"> <input type="submit" style="display: none;" onclick="jumpPage();"> </form> というHTMLがあります。 しかし実際はページが飛びません。 どうしたら飛ぶようになりますか。

  • セレクトボックスの項目ごとにテキストボックスの数値を参照するには??

    初心者なのにjavascriptで作ろうとしているのが 悪いのですが、完全に煮詰まっています。 助けてください。 カロリー計算なんですが、朝食・昼食など食事毎に セレクトボックスの食品項目を選択していきます。 (食品項目は、本来は数十項目あります) 次に選択された項目のグラムをテキストボックスで入力します。 そして、それを食品毎にカロリー計算して合計のカロリーを表示します。 answer=(A*0.1)+(B*0.2)+(C*0.3)+(D*0.4) が、カロリー=(ご飯*0.1)+(肉*0.2)+(魚*0.3)+(牛乳*0.4)といった感じです。 セレクトボックスのオプション項目の食品は、朝食・昼食問わず、同一です。 食品1・2は選択されない場合もあります。 もっと簡単に作れる入力書式などの変更も考えましたが、 諸事情により、この方式の入力・結果表示が必要なんです。 なにぶんボランティアサークルで予算も何もなくHP作成を外部に 依頼するのも不可能です。 少し出来る人が作っている程度です。 他に頼る人もいないので、出来なければ諦めざるえない状況なんで 今、本を読みながら独学で作っています。 どうかお助けください。 厚かましいですが、よろしくお願いします。 <HEAD> <SCRIPT language="JavaScript"> function calc(){ var A = var B = var C = var D = var E = document.f1.answer.innerText = (A*0.1)+(B*0.2)+(C*0.3)+(D*0.4); } window.onload=calc; </SCRIPT> </HEAD> <BODY> <form id="f1"> 計算結果の計算式<BR> 【カロリー(answer)=(A*0.1)+(B*0.2)+(C*0.3)+(D*0.4)】<BR> カロリー<INPUT size="20" type="text" name="answer"><BR> <BR> 朝食<BR> 食品1<SELECT name="s11"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> 食品2<SELECT name="s12"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> <BR> 昼食<BR> 食品1<SELECT name="s21"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> 食品2<SELECT name="s22"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR>  </FORM> </BODY>

  • テキストボックスの中に順番に○がついていくような・・・

    こんにちは。 jspで画像にあるような画面を表示できるようにと課題が出まして、四苦八苦しております。 内容は9個のテキストボックスがあり、OKボタンを押すごとに次のページに遷移し、1つずつ○が順に表示されていくというものです。 さらに、全てのボックスが埋まっている時にOKボタンを押すと全て空になり、また最初に戻ります。 自分で書いてみたコードはこんな感じです。 <%@page language="java" %> <%@page contentType="text/html;charset=Shift_JIS" %> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <HTML><HEAD><TITLE>課題1</TITLE> </HEAD><BODY> <FORM ACTION="kadai2.jsp" METHOD="post"> <BR> No.1:<INPUT TYPE="text" name="box1" VALUE="○"><BR> No.2:<INPUT TYPE="text" name="box2"><BR> No.3:<INPUT TYPE="text" name="box3"><BR> No.4:<INPUT TYPE="text" name="box4"><BR> No.5:<INPUT TYPE="text" name="box5"><BR> No.6:<INPUT TYPE="text" name="box6"><BR> No.7:<INPUT TYPE="text" name="box7"><BR> No.8:<INPUT TYPE="text" name="box8"><BR> No.9:<INPUT TYPE="text" name="box9"><BR> <INPUT TYPE="submit" VALUE="ok"> </FORM> </BODY></HTML> 上記と同様で、○を1つずつ増やしたファイルを9個作れば表示はできますが、それではHTMLで済んでしまいます。 1~9のボックスの部分をjava(配列)で書けますが、○を1個ずつ増やしていく方法が分かりません。 1つのファイルで自分を呼び出すという方法っぽいですが・・・ sessionでもrequestでも何でも大丈夫です。 ご教示お願いします。

    • ベストアンサー
    • Java
  • テキストボックスの初期値について

    テキストボックスに初期値を入れたいときは <input name="text1" type="text" value="初期値"> というように、valueで指定すると思うのですが、 初期値に【"】半角のダブルクオートを含めたい場合は どのように記述するのですか? <input name="text1" type="text" value=""初期値""> のように記述すると空白が表示されてしまいます。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう