プルダウンとチェックボックスの連動方法とメニューの非活性化について

このQ&Aのポイント
  • プルダウンメニューの中身を活性したり非活性にする方法について教えてください。
  • チェックボックスにチェックされた場合、メニューの中のYahoo!をリンクさせない方法を教えてください。
  • チェックボックスとプルダウンメニューの連動方法やメニューの非活性化について詳しく教えてください。
回答を見る
  • ベストアンサー

プルダウンとチェックボックスの連動

はじめましてよろしくおねがいします。 やりたいことはプルダウンのメニューの中身を活性したり非活性に したいのですが、どのようにやるのか想像がつきません。 以下にソースを貼り付けました。 チェックボックスにチェックされた場合はメニューの中身の■Yahoo!をリンクさせない様にしたいです。 チェックが外れたときはメニューの中身はすべてリンクで表示します。 現状はすべてリンクしかできていないです。 チェックボックスとの連動の方法、メニューの中の非活性の方法を教えてください。よろしくおねがいします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR><BR><BR> <FORM> <INPUT TYPE ="checkbox">ここにチェックを入れるとプルダウンの■Yahoo!のみ非活性にしたい。 </FORM> </BODY> </HTML>

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

  • ベストアンサー
  • kazumero
  • ベストアンサー率40% (20/49)
回答No.4

http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2589974 上記によると、URLをコピペすると​という文字列がついてくるみたいですね。 これを削除したら正常に動きました。

iemon_gori
質問者

補足

何とかここまで仕上げましたが、 肝心の「メニューを表示する」が非活性にするやり方に苦戦しております。 <html> <head> <title></title> <script language="javascript"> <!-- // プルダウンメニュー flag = false; function pulldown() { if(flag) id.style.visibility = "hidden"; else id.style.visibility = "visible"; flag = !flag; } function check() { var ahref = document.getElementById('offlink'); var ahref_2 = document.getElementById('offAuctions'); if(document.form1.check1.checked){ ahref.removeAttribute('href'); }else{ ahref.setAttribute('href', 'http://www.yahoo.co.jp/'); } if(document.form1.check2.checked){ ahref_2.removeAttribute('href'); }else{ ahref_2.setAttribute('href', 'http://auctions.yahoo.co.jp/'); } } //--> </script> </head> <body bgcolor="#ffffff"> <a href="javascript:pulldown()">メニューを表示する</a><br> <div id="id" style="position:absolute;visibility:hidden;"> <a href="http://www.yahoo.co.jp/" id="offlink">■yahoo!</a><br> <a href="http://auctions.yahoo.co.jp/" id="offAuctions">■yahoo! auctions</a><br> </div> <br><br><br><br><br><br> <form name="form1"> <input type ="checkbox" name="check1" onclick="check()">ここにチェックを入れるとプルダウンの■yahoo!のみ非活性にしたい。 <BR> <input type ="checkbox" name="check2" onclick="check()">ここにチェックを入れるとプルダウンの■yahoo! auctionsのみ非活性にしたい。 </form> </body> </html>

その他の回答 (3)

  • kazumero
  • ベストアンサー率40% (20/49)
回答No.3

No.2ですが、 何か知らないですが、​ とか言うのが加わってますね。削除しておいてください。

iemon_gori
質問者

お礼

kazumeroさん ありがとうございます。 ​や?を削除したら動作しました! またこの件について自分なりに調べて疑問になった点がありましたら質問させていただきます。 本当にありがとうございました。  

iemon_gori
質問者

補足

kazumeroさんに作成いただいたものをさらにグレードアップしたく再投稿させていただきます。 考えている事は 1.「メニューを表示する」リンク自体を非活性にしてチェックされたら「メニューを表示する」を活性させてたいです。 2.チェックボックスをもうひとつ設けてチェックを入れるとすべて活性したいです。 <input type ="checkbox" name="check2" onclick="check()">ここにチェックを入れるとプルダウンがすべて活性にしたい。 3.チェックボックスがチェックされていなければ「メニューを表示する」は非活性状態にしたいです。 理解できていないので教えていただけないでしょうか、また関連リンクなどございましたら貼り付けていただけないでしょうか。 よろしくお願いいたします。

  • kazumero
  • ベストアンサー率40% (20/49)
回答No.2

こんな感じでいかがでしょうか? <html> <head> <title></title> <script language="javascript"> <!-- // プルダウンメニュー flag = false; function pulldown() { if(flag) id.style.visibility = "hidden"; else id.style.visibility = "visible"; flag = !flag; } function check() { var ahref = document.getElementById('offlink'); if(document.form1.check1.checked){ ahref.removeAttribute('href'); }else{ ahref.setAttribute('href', '​http://www.yahoo.co.jp/'); } } //--> </script> </head> <body bgcolor="#ffffff"> <a href="javascript:pulldown()">メニューを表示する</a><br> <div id="id" style="position:absolute;visibility:hidden;"> <a href="​http://www.yahoo.co.jp/" id="offlink">​■yahoo!</a><br> <a href="​http://auctions.yahoo.co.jp/">​■yahoo! auctions</a><br> </div> <br><br><br><br><br><br> <form name="form1"> <input type ="checkbox" name="check1" onclick="check()">ここにチェックを入れるとプルダウンの■yahoo!のみ非活性にしたい。 </form> </body> </html> removeAttribute('href') でhref属性を取り除き、 setAttribute('href', 'http://www.yahoo.co.jp/') で、href属性とその値としてYahooのURLを指定しています。

iemon_gori
質問者

補足

ご返答ありがとうございます。 早速こちらで動作を確認させていただきましたが、メニューリンクをクリックすると、 ライン1、文字1 オブジェクトを指定してくださいと言うエラーメッセージが表示されました。 チェックボックスをチェックしたときも同様のエラーでライン33でした。 私にはスキル不足でエラーを消せませんでした。 すみませんがご確認願えませんでしょうか。 よろしくお願いいたします。

  • kazumero
  • ベストアンサー率40% (20/49)
回答No.1

非活性とはどのような状態でしょうか? ■Yahoo!を消すのでしょうか、クリックしても何も怒らないようにしたいのでしょうか。 補足要求します。

iemon_gori
質問者

補足

kazumeroさん はじめまして。早速のリアクションありがとうございます。 ■YAhoo!は消さないでメニュー上には表示したいと考えております。 クリックしても何も起こらない(グレー色)で表示したいです。 ボタンなど非活性にしたときの状態みたいな感じです。 よろしくお願いいたします。

関連するQ&A

  • プルダウンメニューについて

    ジャバスクリプトが全くの初心者です。 プルダウンメニューをつくりたくて http://javascript.eweb-design.com/0701_pdm.html こちらのサイトを参考につくっていますが、 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://bb.yahoo.co.jp/">■Yahoo! BB</A><BR> <A href="http://shopping.yahoo.co.jp/">■Yahoo! Shopping</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR> </BODY> </HTML> とありますが、 ボタンが二箇所ある場合はジャバスクリプトの部分はどのように書けば良いでしょうか ? <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID1.style.visibility = "hidden"; else ID1.style.visibility = "visible"; flag = !flag; flag = false; function pullDown() { if(flag) ID2.style.visibility = "hidden"; else ID2.style.visibility = "visible"; flag = !flag; } //--> (IDの部分を変更しています。) こう書いてみましたがダメでした。 とても困っています、どなたか助けてください。よろしくお願いいたします。

  • プルダウンメニューについてです。

    プルダウンメニューについてです。 http://javascript.eweb-design.com/0701_pdm.html こちらのサイトを参考につくっています。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://bb.yahoo.co.jp/">■Yahoo! BB</A><BR> <A href="http://shopping.yahoo.co.jp/">■Yahoo! Shopping</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR> </BODY> </HTML> 説明がうまくできないのですが、、”メニューを表示する”をクリックしたときにドロップダウンメニューを開くと同時にページを開きたいと思っています。(”メニューを表示する”のページを作りたい。) どうしたらよいでしょうか?よろしくお願いします。

  • プルダウンメニュ 展開時にずらす方法

    以下の設定をおこなった際に「プルダウン1」で表示される「■メニュ1」と「■メニュ2」が「プルダウン2」に重ならないように「プルダウン2」が自動的に下がり、「プルダウン1」を閉じると元の位置に戻るような設定はないでしょうか? 宜しくお願いいたします。 function pullDown1() { if(flag) ID1.style.visibility = "hidden"; else ID1.style.visibility = "visible"; flag = !flag; } function pullDown2() { if(flag) ID2.style.visibility = "hidden"; else ID2.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown1()">プルダウン1</A><BR> <DIV id="ID1" style="position:absolute;visibility:hidden;"> <A href="xxxx">■メニュ1</A><BR> <A href="xxxx">■メニュ2</A><BR> <!-- ==================== --> <A href="javaScript:pullDown2()">プルダウン2</A><BR> <DIV id="ID2" style="position:absolute;visibility:hidden;"> <A href="xxxx">■メニュ3</A><BR> <A href="xxxx">■メニュ4</A><BR>

  • カテゴリをクリックして、リンク先一覧を表示させたい

    テーブル内のカテゴリをクリックすると、別テーブルにリンク先一覧を表示させるような、リンクページを作りたいのですが、下記のように組むと、 「リンク1」をクリック→別テーブルにちゃんとリンク先一覧が表示される。 次に「リンク2」をクリックすると「リンク1」のリンク先一覧の下に「リンク2」のリンク先一覧も表示されてしまう。 しかも2回クリックしないと表示されません(泣 「リンク2」をクリックしたら「リンク1」で表示させたリンク先一覧と入れ替えで、リンク先を表示させたいのですが、やり方が分かる方いらしたら、ご教授お願いします。 <HEAD> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown01() { if(flag) ID01.style.visibility = "hidden"; else ID01.style.visibility = "visible"; flag = !flag; } function pullDown02() { if(flag) ID02.style.visibility = "hidden"; else ID02.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD><A href="javaScript:pullDown01()">リンク1</a><BR> <BR> <A href="javaScript:pullDown02()">リンク2</a><BR> </TD> <TD style="width:380px;height:190px"> <DIV id="ID01" style="visibility: hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> </DIV> <DIV id="ID02" style="visibility: hidden;"> <A href="http://bb.yahoo.co.jp/">■Yahoo! BB</A><BR> </DIV> </TD> </TR> </TBODY> </TABLE> </BODY>

  • プルダウンメニューをmouseoutで閉じる

    mouseoutで閉じるようにしたいのですが、可能でしょうか。 <SCRIPT language="JavaScript"> <!-- flag = false; function pullDown() { if(flag) smenu.style.visibility = "hidden"; else smenu.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT>

  • マウスオーバーのプルダウンメニューについて

    すみません。まったくのしろうとです。教えてください。 会社のWebサイトをリニューアルしようとしていますが、メニューを折りたたみにしたいと考えています。ネットでmouseoverというJavaスクリプトでできるということまでは突き止めました。そしてサンプルも見つけたのですが、やりたいことと合致しなくて困っています。 <script language="JavaScript"><!-- vType = ["hidden","visible"]; function pdMenu(mName) { Menu = document.all[mName].style; Menu.visibility = vType[Menu.visibility.indexOf("hidden") + 1]; } // --></script> </head> <body> <IMG src="newimg/AdAge.gif" onmouseover="pdMenu('Menu1')"><br> <div id="Menu1" style="visibility:hidden" onMouseout="pdMenu('Menu1')"> <a href="http://www.openspc2.org/" >わっ!</a><br> <a href="http://www.impress.co.jp/">ぎゃっ!</a><br> <a href="http://game.gr.jp/" >しょえ~!</a><br> </div> </body> このスクリプトでは、newimg/AdAge.gifという画像の上にマウスをかざすと、言葉がプルダウンで出てきます。わたしがやりたいのは、この画像を単なるテキストに変えることです。HTMLエディタ上でイロイロやってみましたが、うまくいきません。この部分をテキストに変える方法を教えていただけないでしょうか? どうかよろしくお願いします。

  • ドロップダウンメニューの制作で

    こんにちわ。 http://javascript.eweb-design.com/0701_pdm.html のサイトを参考に ほとんどソースを変えずドロップダウンメニューを制作しようとしていますが HTMLの定義を <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> にすると、上記のサイトのソースだとできないのです。 この定義にてどうしても制作したいのですが、どこを変えればいいのでしょうか? 参考にし、以下のようにソースを書きました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown01() { if(flag) ID01.style.display = "none"; else ID01.style.display = "block"; flag = !flag; } //--> </SCRIPT> <link href="css/test.css" rel="stylesheet" type="text/css"> </HEAD> <BODY bgcolor="#ffffff"> <TABLE border="0" cellspacing="0" cellpadding="0"> <TBODY> <TR> <TD> <DIV style="background-color:#ffcccc; width:160px"> <div class="test"><p><a href="javaScript:pullDown01()">テスト</a></p></div> </DIV> <DIV id="ID01" style="display:none;"><div class="test2"><p><a href="#">テスト</a></p></div></div> </TD> </TR> </TBODY> </TABLE> <BR><BR><BR><BR> <BR><BR> </BODY> </HTML>

  • ドロップダウンリストの高さを、非表示のときは上に詰

    初心者です。本当に初歩な質問で申し訳ありません。 ドロップダウンリストを作り、クリックしたときにサブメニューを表示したいのですが、 表示、非表示は切り替えられても、非表示のときに空欄ができてしまいます。 これを、非表示のときは上に詰めて表示するようにしたいのですが、その方法を 教えてください。 下記がそのソースになります。 <SCRIPT language="JavaScript"> <!-- function pullDown1(ss) { for(d0 = 0 ; d0 < ID.length ; d0 ++) { ID[d0].style.visibility = "hidden"; } ID[ss].style.visibility = "visible"; } //--> </SCRIPT> </HEAD> <BODY> <ol> <li><A href="javaScript:pullDown1(0)">メニューを表示する</A> <DIV id="ID" style="visibility:hidden;"> <ul> <li><A href="">A</A></li> <li><A href="">B</A></li> <li><A href="">C</A></li> <li><A href="">D</A></li> </ul> </DIV> </li> <li><A href="javaScript:pullDown1(1)">メニューを表示する</A> <DIV id="ID" style="visibility:hidden;"> <ul> <li><A href="">a</A></li> <li><A href="">b</A></li> <li><A href="">c</A></li> <li><A href="">d</A></li> </ul> </DIV> </li> </ol> </BODY> 以上、よろしくお願いいたします。

  • javascriptが効かない・・・

    上下のチェックボックス(全チェック)をした後にリンクAのチェックをはずすとリンクBがチェックされている状態になります。 そのときメニューがリンクBがリンクされている状態にしたいのですがうまくいきません。よろしくお願いいたします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift-jis" /> <script type="text/javascript"> function pulldown(flg){ if(flg==0){ addInfoLink.style.visibility="visible"; }else{ updateInfo.style.visibility="visible"; } } function check(){ var cnt = 0; addInfoLink.style.visibility="hidden"; updateInfo.style.visibility="hidden"; for(i=0; i<document.forms[0].check1.length; i++){ if(document.forms[0].check1[i].checked == true){ cnt++; if(document.forms[0].check1[i].value==0){ alert("●"); muneHikasei.style.visibility="hidden"; linkB.style.visibility="visible"; return; }else if(document.forms[0].check1[i].value==1){ alert("▲"); muneHikasei.style.visibility="hidden"; linkA.style.visibility="visible"; return; } } } if(cnt==0){ linkB.style.visibility="hidden"; linkA.style.visibility="hidden"; addInfoLink.style.visibility="hidden"; updateInfo.style.visibility="hidden"; muneHikasei.style.visibility="visible"; } } var allFlg=false; function allCheckAction(){ if(allFlg== false && document.forms[0].allCheck1.checked==true){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=true; } check(); allFlg=true; document.forms[0].allCheck2.checked=true; return; } if(allFlg== true && document.forms[0].allCheck1.checked==false){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=false; } check(); allFlg=false; document.forms[0].allCheck2.checked=false; return; } if(allFlg== false && document.forms[0].allCheck2.checked==true){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=true; } check(); allFlg=true; document.forms[0].allCheck1.checked=true; return; } if(allFlg== true && document.forms[0].allCheck2.checked==false){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=false; } check(); allFlg=false; document.forms[0].allCheck1.checked=false; return; } } </script> </head> <body> <div id="muneHikasei" style="position:absolute; visibility:visible; left:9; top:28;">リンク</div> <div id="linkB" style="position:absolute; visibility:hidden; left:9; top:28;"> <a href="javaScript:void(0)" onclick="pulldown(0)">リンク</a> <div id="addInfoLink" style="position:absolute; visibility:hidden; left:4px top:16px; width:80; height:1px; background-color:#FFFFFF; layer-background-color:#FFFFFF"> リンクA<br /> <a href="">リンクB</a> </div> </div> <div id="linkA" style="position:absolute; visibility:hidden; left:9; top:28;"> <a href="javascript:void(0)" onclick="pulldown(1)">リンク</a> <div id="updateInfo" style="position:absolute; visibility:hidden; left:4px top:16px; width:80; height:1px; background-color:#FFFFFF; layer-background-color:#FFFFFF"> <a href="">リンクA</a><br /> リンクB </div> </div> <br><br><br><br><br> <form name="" method="post"> <input type="checkbox" name="allCheck1" value="1" onclick="allCheckAction()"/> <br> <input type="checkbox" name="check1" value="1" onclick="check()"/>リンクA <br> <input type="checkbox" name="check1" value="0" onclick="check()" />リンクB <br> <input type="checkbox" name="allCheck2" value="1" onclick="allCheckAction()"/> </form> </body> </html>

  • JavaScriptがfirefoxで作動しない

    IEでは正しく作動するjavascriptがfirefoxではうまく作動しません。なぜなのかどなたか教えてください・・・・! <script type="text/JavaScript"> flag = false; function pd1() { if(flag) ID1.style.visibility = "hidden"; else ID1.style.visibility = "visible"; flag = !flag; } </script> ここからhtml <div id= "w1"><a href="javascript:pd1()" >テキスト</a></div> <div id="ID1" style="visibility: hidden;"> <p>テキスト</p></div> 以上です。まだまだ超初心者です。よろしくお願いいたします。

専門家に質問してみよう