• ベストアンサー

NNでうまく動きません

オプションボタンを使って、メニューを作りましたが、NNでうまく動きません。「checked」で初期値を指定しているので、そのまま「選択」ボタンを押した場合のために「form」に「value」でURLを指定したのですが、認識されません。(IEでは問題ありません)オプションボタンをクリックしなおして、「選択」ボタンをクリックするとジャンプします。 ソースを書きますので、宜しくお願いします。 <html> <head> <title>メニュー</title> <SCRIPT LANGUAGE="JavaScript"> <!-- function change(){ parent.location=document.menu.value;} // --> </SCRIPT> </head> <body> <tableborder="0"> <tr><td> <form name="menu" value="http://www.goo.ne.jp"> <input type="radio" name="sate" onClick="menu.value='http://www.goo.ne.jp'" checked>GOO<br> <br> <input type="radio" name="sate" onClick="menu.value='http://www.yahoo.co.jp'">YAHOO<br> <br> <input type="button" value="選択" onClick="change()"> </form> </td></tr> </table> </body> </html>

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

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

以下のようにすればいかがでしょう。 デフォルトのページが決まっているので、valにデフォルトページを記述。 document.menu.valueが存在する時は、そのページをセット。 無い場合は、デフォルトのVALを表示。 var val='http://www.goo.ne.jp'; function change(){ if(document.menu.value) parent.location=document.menu.value; else parent.location=val; }

cheb
質問者

お礼

ありがとうございました。早急に対応できて助かりました。

その他の回答 (1)

  • Kizz
  • ベストアンサー率47% (30/63)
回答No.2

はじめまして、chebさん。 上記コードちょっとみてみました。 そこで、「1.うごかしてみました」「2.属性 cheked と onClick="" について」 「3.参考までにこんな風にもできますよ」、 をしたに書きますね。 ==== 1.Windows IE5.5 と Netscape4.7 でうごかすとどちらも初期(radioクリックなし)   ではうまくジャンプしませんでした。   #IEではいくという事でしたけど、この環境でみた所は駄目なもようです。 2.   checked : は、初期の時点のradioのON表示の指定   onClick(): は、そのradioがマウスなどでクリックされた場合におこなうことを         定義しておくこと。   その為、私の理解の上では、checked をたてても、クリックイベントは発生しない   ので、onClick()で定義した処理は実行されないと思います。 3.参考のコード。   やりたいことを実現する方法(コードの書き方)は色々あるとおもいますけど、1例   として書いておきますね。   #javascriptがちょっと長くなりますけど。   #またradioが2つ限定な書き方になってます(数をみてループするようにもできますけど、    今回は簡単にで。 +++++ <html> <head> <title>メニュー</title> <SCRIPT LANGUAGE="JavaScript"> <!-- function change(){ var url = ""; if( document.menu.sate[0].checked == 1 ) url = document.menu.sate[0].value; else if( document.menu.sate[1].checked == 1 ) url = document.menu.sate[1].value; if( url != "" ) location.href=url; } // --> </SCRIPT> </head> <body> <tableborder="0"> <tr><td> <form name="menu" > <input type="radio" name="sate" value="http://www.goo.ne.jp" checked>GOO<br> <br> <input type="radio" name="sate" value="http://www.yahoo.co.jp">YAHOO<br> <br> <input type="button" value="選択" onClick="change()"> </form> </td></tr> </table> </body> </html> ++++++ 一応参考までにお使い下さい。 んじゃ、がんばってみて下さいね。

cheb
質問者

お礼

ありがとうございました。とても丁寧に書いて下さって、問題も解決しましたが、気持ちも和みました。

関連するQ&A