- ベストアンサー
ひとつのHTMLの中に複数のJavascriptの処理を行いたい
初歩的な質問で申し訳ありません。また、長い質問で併せてあらかじめお詫びいたします。 表題通り、ひとつのHTMLの中に複数のJavascriptの処理を行いたいのです。 現在あるページにはサイト内の各コーナーのトップへリンクが張ってあるボタンが並んでおり、このそれぞれのボタンにonMouseoverで画像が入れ替わり(カーソルをあわせるとボタンが光っているかのように見せる、アレです)、同時にボタンの下にあるテキストフィールドにそれぞれのコーナーの簡単な説明がでるようにしてあります。以上ここまでは何とか表示でき、IEでもネスケでも確認できています。 次に、別にアンケート的な診断問題をつくりました。質問に対して「○」「△」「×」のいずれかひとつで回答してもらい、○なら2点、△なら1点、×なら0点、というように設定して、5つのカテゴリーで各10問、合計50問設置します。これをカテゴリーごとに集計して、カテゴリーごとに点数の高低に応じての解説をしていこうとしています。そこで、このアンケート的なものだけを別ファイルでつくってみたのですが、このアンケートだけのファイルなら考えているとおりに動いてくれています。 問題はここからで、はじめにお話ししたボタンが並んでいるページの中に、このアンケートの部分を組み込みたいのです。このときのJavascriptの記述の仕方がわからないので困っています。どなたか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>両方記述するには、単純に ><script type="text/javascript"> </script> ><script type="text/javascript"> </script> >と続けてしまえばよいのですか? それで構いませんし、#2さんのようにしても構いません。 さて動かなくなってしまった原因ですが、アンケート用のformの前に、新しくformを増やしていませんか?おそらくそれによってdocument.forms[ ]のインデックスがずれてしまったのではないかと想像します。 もしそうであった場合、下記のような修正で対応できるかと思います。 function SetText(){ : var base=1; // 追加行;アンケートより前にあるformの数 : for(j=0;j<5;j++){ sw=j*10+base; // 変更行
その他の回答 (2)
{ document.images[iName].src=str;} //--></script> 上記の { document.images[iName].src=str;} ↑の下に次の function SetText(){ (以下略) を記述する。 これで動かなかったらどこかがおかしい。 どこがおかしいかは私には不明。悪しからず。
- keiko1973
- ベストアンサー率33% (5/15)
質問の内容を勘違いしていたらすいません。 そのアンケートのJavaScriptを下記の<!-- -->の中で記述して、組み込んでみてはどうでしょう? <script type="text/javascript"> <!-- アンケートのJavaScript // --> </script>
補足
早速のご対応ありがとうございます。現在、「ボタンが並んでいる……」の方のJavaScriptが<head></head>の中に <script language="JavaScript"><!-- function swImg(iName,str) { document.images[iName].src=str;} //--></script> とあります。アンケートのJavaScriptは <SCRIPT Language="JavaScript"> <!-- function SetText(){ myPlus=new Array(0,0,0,0,0,0,0,0,0,0); myTotal=new Array(0,0,0,0,0,0,0,0,0,0); chk=new Array(); var ghj=0; for(j=0;j<5;j++){ sw=j*10; for(l=sw;l<10+sw;l++){ for(g=0;g<3;g++){ if(document.forms[l].elements[g].checked==true) { myPlus[l-sw]=eval(document.forms[l].elements[g].value); } } } for(i=0;i<10;i++){myTotal[j] += myPlus[i]} document.total.elements[j].value = myTotal[j]; for(k=0;k<10;k++){myTotal[k]=0;myPlus[k]=0} } myCP=eval(document.total.plusCP.value)+10; myNP=eval(document.total.plusNP.value)+10; myA=eval(document.total.plusA.value)+10; myFC=eval(document.total.plusFC.value)+10; myAC=eval(document.total.plusAC.value)+10; document.cookie="name=TEST"+myCP+myNP+myA+myFC+myAC; location.href="診断結果のページ.htm"; } //--> </SCRIPT> としています。両方記述するには、単純に <script type="text/javascript"> </script> <script type="text/javascript"> </script> と続けてしまえばよいのですか?やってみたところ、両方とも動かなくなったのですが……。