オプションボタンを使って、メニューを作りましたが、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>

A 回答 (2件)

以下のようにすればいかがでしょう。


デフォルトのページが決まっているので、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;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/29 09:35

はじめまして、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>

++++++

一応参考までにお使い下さい。
んじゃ、がんばってみて下さいね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/01/29 09:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q

が場所をとってしまい表示スペースに空白ができてしまい配置が乱れてしまいます
どうしたら'hidden'のサイズが0であるかのように振舞わせることができるでしょうか?
テーブルの中に使っているのでテーブル枠が不必要に広がってしまいました
折り返しが起こりtrの高さが増えてしまったのです

Aベストアンサー

タグの前後で改行している(<br>タグではなくソース上で)、ということはありませんか?
もしそうなら削除してみてください。

Q と、

<td></td> と、<td><BR></td>

ホームページビルダーで作ったホムペを、KompoZerというHTMLエディタで開くと、
テーブルのなにも入っていないセルに<BR>タグが勝手に挿入されてしまいます。
<td></td> と、<td><br></td> は、
ブラウザ上ではどちらでもちゃんと表示されるのですが、
HTML文法的にはどちらが正しいのでしょうか?
また、どちらも正しい場合、<br>がある・ないで、違いがあるのでしょうか?

※ホームページビルダー、KompoZerの善し悪しは無視してください。

Aベストアンサー

文法的にはどちらも正しいです。
ブラウザの種類やHTMLのモードによって、tdが空だと、見え方が違うケースがあります。
tableでborderを指定したときに、へこんで見えるかどうか。空でないとかならずへこんで見えます。

Qでテキストボックスとセルの間にわずかな隙間があいてしまう・・

<TABLE>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
</TALBLE>

こう書くときに、テキストボックスの下にわずかな隙間が
できるのを防ぎたいのですが、何か方法はありませんでしょうか?

Aベストアンサー

隙間をつくってしまう原因はいくつかあります。

(1) <TABLE>タグ
BORDER=0またはNOBORDERにする。
CELLSPACING=0
CELLPADDING=0

(2) <INPUT TYPE="TEXT">前後の改行
<TD><INPUT TYPE="TEXT"></TD>

(3)<FORM>や</FORM>タグの記述場所
恐らくこれが原因でしょう。
上記には記述されていませんが、
<TABLE>
<TR>
<TD>
<FORM ~>
</TD>
</TR>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
<TR>
<TD>
</FORM>
</TD>
</TR>
</TABLE>
としていませんか?
HTMLとしては好ましくないと思いますが、<FORM>や</FORM>の前後にある<TR><TD>~</TD></TR>を取り除き、以下の様にします。
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<FORM ~>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD><INPUT TYPE="TEXT"></TD>
</TR>
<!-- ここまで -->
</FORM>
</TABLE>

尚、表の罫線を残すのであればBORDERを変更したりしてください。

隙間をつくってしまう原因はいくつかあります。

(1) <TABLE>タグ
BORDER=0またはNOBORDERにする。
CELLSPACING=0
CELLPADDING=0

(2) <INPUT TYPE="TEXT">前後の改行
<TD><INPUT TYPE="TEXT"></TD>

(3)<FORM>や</FORM>タグの記述場所
恐らくこれが原因でしょう。
上記には記述されていませんが、
<TABLE>
<TR>
<TD>
<FORM ~>
</TD>
</TR>
<!-- ここから10回ほど繰り返し -->
<TR>
<TD>
<INPUT TYPE="TEXT">
</TD>
</TR>
<!-- ここまで -->
<TR>
<TD>
</FORM>
</TD>
</TR>...続きを読む

Qブラウザ依存?へ飛ばない

ブラウザ依存でしょうか?・・・

<li class="yyy"><a href="hoge.html#xxx">ホゲ</a></li>
と記述しているリンクをクリックして、URLは
http://hogehoge.com/hoge.html#xxx
へ移動するのですが、
hoge.html内に
<a name="#xxx" id="#xxx"></a>
と記述している指定箇所に飛んでくれません。

IE7は正常に飛んでくれますが、
Firefox, Safari, Opera, GoogleChromeなど、
IE7以外のブラウザを用いると飛んでくれないのです。

この機能はIEだけの機能だったでしょうか?
ご存知の方がいましたら、ご教授いただけると幸いです。
よろしくお願いします。

Aベストアンサー

>同html内で、例えば、ページ上部に飛ばす場合は、
><a href="#pagetopr">ページ上へ↑</a></p>
>のように#付きで問題なく動作しているので、
>別htmlの場合、#を付けないということですね。

「#」は続く文字列がid値であることを明示します。
同html/別htmlは関係ありません。


・飛び先となる要素にはid値を書きます。
 <タグ id="xxx">

 →「id=」と書いているので、さらに「#」を付けて
  「これはid値ですよ」と明示する必要はありません。
 

・リンクのhrefには"#"+id値を書きます。
 同html <a href="#xxx">
 別html <a href="hoge.html#xxx">

 →「xxx」だけではパスの一部と認識するので
  「#」をつけて「これはid値ですよ」と明示します。
 →hrefにページの指定が無いなら(同html)、
  同html内の「xxx」というid値の要素へ移動します。
 →hrefにページの指定があるなら(別html)、
  指定html内の「xxx」というid値の要素へ移動します。

>同html内で、例えば、ページ上部に飛ばす場合は、
><a href="#pagetopr">ページ上へ↑</a></p>
>のように#付きで問題なく動作しているので、
>別htmlの場合、#を付けないということですね。

「#」は続く文字列がid値であることを明示します。
同html/別htmlは関係ありません。


・飛び先となる要素にはid値を書きます。
 <タグ id="xxx">

 →「id=」と書いているので、さらに「#」を付けて
  「これはid値ですよ」と明示する必要はありません。
 

・リンクのhrefには"#"+id値を書きます...続きを読む

Q

に置き換えられる

DOCTYPEはHTML4.01 Transitionalでやっているんですが、
brタグをつかうとXML用に<br />と変換されてしまいます。
何か記述に問題があったのでしょうか。。

HTMLでこの書き方をしても支障はないと聞きました。
W3Cでチェックを行いましたが、やはりひっかかりませんでした。
しかし、Another HTML-lint gatewayでチェックしてみると、W3Cとは逆に重要な問題としてひっかかってしまいました。。

フリーページを使って作成しています。

Aベストアンサー

http://tool-6.net/?homeroom
テストのため登録してみましたが、<br>タグは問題ないですね。

tool-x サーバー番号を違うもので試してみるとか
他のPCやネットカフェ、携帯などから編集してみるとか

申し訳ございませんが、症状が確認できないのでアドバイスできません。

向こうのふれあい広場で聞けばわかるかも知れませんね。


このカテゴリの人気Q&Aランキング

おすすめ情報