• ベストアンサー

function処理後、IE以外初期化されてしまいます

以下のスクリプトでドロップダウンから「フランス」を選ぶと正解と表示され、alertも出ます。 その後、IEでは表示された内容で、ドロップダウンの選択された状態が残るのですが、firefox,opera,safariともreloadされたように初期化されてしまいます。 どうしたら初期化されないように出来るでしょうか。 <html> <head> <script type="text/javascript"> <!-- var seikai = new Array(0,10,2,7,12,14,6,16,15,3,9,11,4,5,13,8,1); var msg_text = ""; var kotae = new Array(); function check1(){ seikai_count = 0; kotae=""; for(i=1;i<2;i++){ if(seikai[i]==document.getElementById("q"+i).value) seikai_count++; } msg_text = seikai_count + " 問正解です"; document.getElementById("msg").innerHTML = msg_text; alert(msg_text); return; } // --> </script> </head> <body> <form name="quiz"> <select id="q1"> <option value="0">---- <option value="1">アラビア <option value="2">スウェ-デン <option value="3">スペイン <option value="4">タイ <option value="5">ドイツ <option value="6">トルコ <option value="7">ビルマ <option value="8">ヒンディー <option value="9">フィリピン <option value="10">フランス <option value="11">ベトナム <option value="12">ペルシャ <option value="13">ポルトガル <option value="14">モンゴル <option value="15">ルーマニア <option value="16">ロシア </select> <div id="msg"></div> <button onclick="javascript:check1();">正解数をみる</button> </form> </body> </html>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ブラウザによってはbuttonはsubmitを兼ねますので・・・ やり方は2つ (1)return falseとする。 <button onclick="javascript:check1();return false;">正解数をみる</button></form> (2)inputをつかう <input type="button" onclick="javascript:check1();" value="正解数をみる">

fire--
質問者

お礼

return false;にするという説明文は見つけていたのですが、functionの中のreturnに指定していました。onclickの中につけるとは思いませんでした。 どうも、ありがとうございました。

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

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

下記の様に、type属性を指定して下さい。 <button type="button" onclick="javascript:check1();">正解数をみる</button> <button>で type 属性を省略した場合、規定値が使われますが、 その規定値がブラウザによって異なるようです。 IEは button が規定値のようですが、 HTMLの規格上は submit が規定値のはずです。

fire--
質問者

お礼

なるほど、typeの明示指定で変わるとは気づきませんでした。 IEだけ違うのは規格の問題というのは良くある話ですね。 どうも、ありがとうございました。

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

関連するQ&A