複数プルダウンメニューを初期表示に戻す方法

このQ&Aのポイント
  • 複数プルダウンメニューについて教えてもらったスクリプトを使用していますが、追加の操作方法を知りたいです。
  • OP2のメニューをクリックした後、OP3のメニューをクリックした際にOP2のメニューを初期表示に戻したいです。
  • 初心者なので本を見ても分かりませんでした。お手数ですが、教えていただけると助かります。
回答を見る
  • ベストアンサー

複数プルダウンでメニューを初期表示に戻したい

No.157334でleaz024さんに「複数プルダウンメニュー」について教えてもらったものですが、ひとつ、追加したいことがあるので教えてください。 教えていただいたスクリプトは <script language="javascript"> <!-- function A_Li() {   Sel=document.Link1.OP.selectedIndex;   Ms=document.Link1.OP.options[Sel].value;   parent.main.location.href=Ms;} function B_Li() {   Sel=document.Link1.OP2.selectedIndex;   Ms=document.Link1.OP2.options[Sel].value;   parent.main.location.href=Ms;} // --> </script> <FORM name="Link1"> <SELECT name="OP" onChange="A_Li()" size="1"> <OPTION Value="main.htm" SELECTED>ページを選んでください <option value="main.htm">ぺージ1</option> <OPTION Value="abc.htm">ページ2 <OPTION Value="def.htm">ページ3 </SELECT> <SELECT name="OP2" onChange="B_Li()" size="1"> <OPTION Value="aaa.htm" SELECTED>ページを選んでください <option value="bbb.htm">ぺージ1</option> <OPTION Value="ccc.htm">ページ2 <OPTION Value="ddd.htm">ページ3 </SELECT> です。 例えば OP2のメニューをクリックしたあと OP3のメニューをクリックしたときにOP2のメニューが初期の 表示メニューに戻したいのですが、どう変えればよいでしょうか。 初心者なので本を見てみたのですがわかりませんでした。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

こんにちはshizukuさん、xruzです、やはりはずしていましたね(=.=; <script language="javascript"> <!-- // ここから追加 var s; function reSel(c) { if(s&&(s!=c)) s.options[0].selected=true; s=c; } // ここまで追加 function A_Li() {   Sel=document.Link1.OP.selectedIndex;   Ms=document.Link1.OP.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP); // 追加 } function B_Li() {   Sel=document.Link1.OP2.selectedIndex;   Ms=document.Link1.OP2.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP2); // 追加 } function C_Li() {   Sel=document.Link1.OP3.selectedIndex;   Ms=document.Link1.OP3.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP3); // 追加 } function D_Li() {   Sel=document.Link1.OP4.selectedIndex;   Ms=document.Link1.OP4.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP4); // 追加 } function E_Li() {   Sel=document.Link1.OP5.selectedIndex;   Ms=document.Link1.OP5.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP5); // 追加 } function F_Li() {   Sel=document.Link1.OP6.selectedIndex;   Ms=document.Link1.OP6.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP6); // 追加 } こんな感じでいかがでしょうか? 同じ処理になるよう共通化しました。 注)全部を貼り付けても動きません。追加のところだけ張付けてくださいね。

shizuku
質問者

お礼

xruzさん、ありがとうございました! 思った通りに動きました。感動。。。 詳しく記述していただいて本当に助かりました。

その他の回答 (1)

  • xruz
  • ベストアンサー率50% (72/143)
回答No.1

こんにちはshizukuさん、xruzです。 初期の表示メニューへ戻すわけではありませんが指定したoptionsを 表示するようにするには以下のように一行追加してください。 (はずしてますでしょうか?) function B_Li() { Sel=document.Link1.OP2.selectedIndex; Ms=document.Link1.OP2.options[Sel].value; parent.main.location.href=Ms; document.Link1.OP.options[0].selected=true; // この行を追加しました。 } がんばってくださいね。

shizuku
質問者

補足

早速のご回答をありがとうございます! おかげさまでAとBは動かすことができました。 ただ、、、 3つめ(function C)からの記述がどう応用したらよいかわかりません。 どのメニューをクリックしてもすべて(直前にクリックした表示)を初期値に戻すことができますか? 本当にお手数ですが、教えてください。。 <script language="javascript"> <!-- function A_Li() {   Sel=document.Link1.OP.selectedIndex;   Ms=document.Link1.OP.options[Sel].value;   parent.main.location.href=Ms; document.Link1.OP2.options[0].selected=true;} function B_Li() {   Sel=document.Link1.OP2.selectedIndex;   Ms=document.Link1.OP2.options[Sel].value;   parent.main.location.href=Ms; document.Link1.OP.options[0].selected=true;} function C_Li() {   Sel=document.Link1.OP3.selectedIndex;   Ms=document.Link1.OP3.options[Sel].value;   parent.main.location.href=Ms;} function D_Li() {   Sel=document.Link1.OP4.selectedIndex;   Ms=document.Link1.OP4.options[Sel].value;   parent.main.location.href=Ms;} function E_Li() {   Sel=document.Link1.OP5.selectedIndex;   Ms=document.Link1.OP5.options[Sel].value;   parent.main.location.href=Ms;} function F_Li() {   Sel=document.Link1.OP6.selectedIndex;   Ms=document.Link1.OP6.options[Sel].value;   parent.main.location.href=Ms;}

関連するQ&A

  • 同一ページに複数のプルダウンメニュー

    同一ページに複数のプルダウンメニューをつけたいのですが、 どうすればよいのでしょうか。 下記のように1つはつけることができたのですが、 2つめから、どこをどう変えて追加すればよいのかわかりません。 <script language="javascript"> <!-- function A_Li(){ Sel=document.Link1.OP.selectedIndex; Ms=document.Link1.OP.options[Sel].value; parent.main.location.href=Ms;} // --> </script> <FORM name="Link1"> <SELECT name="OP" onChange="A_Li()" size="1"> <OPTION Value="main.htm" SELECTED>ページを選んでください <option value="main.htm">ぺージ1</option> <OPTION Value="abc.htm">ページ2 <OPTION Value="def.htm">ページ3 </SELECT> よろしくお願いします。

  • 複数のプルダウンメニューの表示について

    複数のプルダウンメニューについてですが、 以前、こちらで教えてもらったことを応用したいのです。 フォーームの中の「グループ1」と「グループ2」という大分類は文字の表示だけでリンクしないようにしたいのです。 この状態だと、「グループ1」という名前もプルダウンの中に入ってしまって、 ファイルがないので、リンクエラーの警告がでます。 どこが間違っていて、 どのように変えたらいいのでしょうか。 よろしくお願い致します。 <script language="javascript"> <!-- var s; function reSel(c) { if(s&&(s!=c)) s.options[0].selected=true; s=c; } function A_Li() {   Sel=document.Link1.OP.selectedIndex;   Ms=document.Link1.OP.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP); } function B_Li() {   Sel=document.Link1.OP2.selectedIndex;   Ms=document.Link1.OP2.options[Sel].value;   parent.main.location.href=Ms; reSel(document.Link1.OP2); } // --> </script> ---------------HTML------------ <FORM name="Link1"> <SELECT name="OP" onChange="A_Li()" size="1"> <OPTION Value="-" SELECTED>グールプ1</option> <option value="1.htm">あ</option> <OPTION Value="2.htm">い</option> <OPTION Value="3.htm">う</option> <OPTION Value="4.htm">え</option> <OPTION Value="5.htm">お</option> </SELECT> <SELECT name="OP2" onChange="B_Li()" size="1"> <OPTION Value="-" SELECTED>グールプ2</option> <option value="6.htm">か</option> <OPTION Value="7.htm">き </option> <OPTION Value="8.htm">く </option> </SELECT>

  • フレームを使用した複数プルダウンメニュー

    こんにちは。 よくある質問もみたのですが「複数のプルダウンメニュー」「フレームを使ったプルダウン」というのはあるのですが、 フレームを使用して左フレームに複数プルダウン、そこで選んだものを右フレームに表示させるというのが見つかりませんでした。 「複数のプルダウンメニュー」もつくれますし、「別フレームに表示させる」こともできるのですが、 プルダウンを増やしたとたんに動きません。 ネームを変えてもみたのですがうまくいきません。 フレームを二つつくって <FRAMESET cols="35%,65%"> <FRAME src="n_menu.htm" name="manu">←こっちにプルダウンメニュー <FRAME src="n_main.htm"name="main">←こっちに表示 目次のhtmファイルで <SCRIPT LANGUAGE="JavaScript"> function openPage() { var list = document.forms[0].urlList; parent.frames[1].location = list.options[list.selectedIndex].value; } </SCRIPT> </HEAD> <FORM> <SELECT NAME="urlList" onChange="openPage()"> <OPTION SELECTED VALUE="cover1.htm">朝の歌 <OPTION VALUE="1.htm">1番目のページ <OPTION VALUE="2.htm">2番目のページ <OPTION VALUE="3.htm">3番目のページ </SELECT> </FORM> #上記をコピペして増やしてみた↓ <FORM> <SELECT NAME="urlList2" onChange="openPage()"> <OPTION SELECTED VALUE="cover2.htm">夜の歌 <OPTION VALUE="4.htm">4番目のページ <OPTION VALUE="5.htm">5番目のページ <OPTION VALUE="6.htm">6番目のページ </SELECT> </FORM> これだと2本目が表示されません。 どうすればいいか教えていただけないでしょうか?

  • プルダウンメニューのターゲット指定

    タイトルどおりなのですが、プルダウンメニュー のリンク先を同ページ内のiframeにしたいのですが これはどうすればできるのでしょうか? こちらに現在の状況を載せておきます。 <SCRIPT LANGUAGE="JavaScript"><!-- function Jump() { tu = document.f.elements['jumpto'].options[document.f.elements['jumpto'].selectedIndex].value if( tu != '-' ) { location.href = tu; } else { alert('移動先を選択して下さい。'); } } // --></SCRIPT> <FORM NAME="f"> <SELECT NAME="jumpto" onChange="Jump();">> <OPTION VALUE="-" SELECTED>移動先を選択</OPTION> <OPTION VALUE="menu1.htm" target="menu">Page1</OPTION> <OPTION VALUE="menu2.htm" target="menu">Page2</OPTION> </SELECT> </FORM> よろしくお願い致します。

  • 複数のプルダウンメニューの作り方。

    ・Aリスト、Bリスト…とプルダウンメニューを複数含んだフォームを一つのhtmlに作りたいのですが、上手くいきません。 一つのフォームに一つのプルダウンメニューは上手くいくのですが、Javascriptを二つ並べると動かなくなります。 とりあえず関数名を重複しない様にしたらいいという事だけはネットで調べてわかりました。 今は、下記の状態になっています。 <script language="JavaScript"> <!-- function MENU(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --> </script> <form name="myForm"> <select name="myMenu" onChange="MENU()"> <option value="">A</option> <option value="a001.html">A001</option> <option value="a002.html">A002</option> <option value="a003.html">A003</option> </select> <select name="myMenu2" onChange="MENU()"> <option value="">B</option> <option value="b001.html">B001</option> <option value="b002.html">B002</option> <option value="b003.html">B003</option> </select> </form> ご指南の程宜しくお願いします。

  • プルダウンメニューリンクを新しいウインドウで表示させたい

    ホームページビルダー11を使っています。プルダウンメニューからリンク先を「新しいウインドウ」で表示させるにはどのようにしたらよろしいのでしょうか。ご指導よろしくお願い致します <SCRIPT language="JavaScript"> <!--- 非表示 function quicklink(w){ if(w == "") return; document.quick.url.selectedIndex = 0; location.href =w; } //end ---> </SCRIPT> <FORM name="quick" action="./"><SELECT name="url" onchange="quicklink(this.form.url.options[this.form.url.selectedIndex].value)" size="1" tabindex="1"> <OPTION selected>■ リンク先を選んでクリック ■ </OPTION> <OPTION value="index.htm">その1</OPTION> <OPTION value="index-2.htm">その2</OPTION> <OPTION value="index-3.htm">その3</OPTION> </SELECT>←関連リンク先</FORM> <TABLE width="100%" border="1" cellpadding="0" cellspacing="0" class="hpb-subh02">

  • ジャンプメニューの表示を初期値に戻したい

    左フレーム(frame name="menu")にジャンプメニューを5個つけて、右フレーム(frame name="main")にジャンプ先が表示されるページで、 ジャンプしてもフレームセットは解除せずに target="main"で表示させます。 ジャンプ後にジャンプメニューの表示を初期値(<option selected>の部分)に戻したいのですがどう記述すればいいですか? 現在のスクリプトは以下の通りです。以下のものに付け足す形で記述したいです。 ●スクリプト部分 function go (_url) { if (_url == "--") { return; } else { form1.target="main"; form1.action = _url; form1.submit(); } } <select onChange="go(this.options[this.selectedIndex].value)"> ●フォーム部分 <select onChange="go(this.options[this.selectedIndex].value)" name="select1"> <option value="--" selected>Select Menu</option> <option value="sample1.htm">サンプル1</option> <option value="sample2.htm">サンプル2</option> </select> 以上です。

  • IE以外のブラウザで対応するには

    超初心者です、見よう見まねで以下のような、セレクト1を選ぶとセレクト2は「選択」(2を選べばその逆)になる外部javascriptとhtmlを作ってみました。IEでは動く(option valueにリンクする)のですが他(サファリやファイアーフォックス)では全く動きません。どこか変なところがあるのでしょうか?それともIE以外では諦めなければならないでしょうか?ご教授の程、よろしくお願い致します。 #外部javascript(ファイルネーム select.js) var s; function reSel(c) { if(s&&(s!=c)) s.options[0].selected=true; s=c; } function A_Li() { parent.myNew.location.href=document.Link1.select1.options.value;   Sel=document.Link1.select1.selectedIndex;   Ms=document.Link1.select1.options[Sel].value; reSel(document.Link1.select1); } function B_Li() { parent.myNew.location.href=document.Link1.select2.options.value;   Sel=document.Link1.select2.selectedIndex;   Ms=document.Link1.select2.options[Sel].value; reSel(document.Link1.select2); } #以下 HTMLソース <script src="./select.js" type="text/javascript" ></script> <FORM name="Link1"> <select name="select1" onChange="A_Li()"> <option value= new.html selected>選択</option> <option value= aaa.html>aaa</option> <option value= bbb.html>bbb</option> <option value= ccc.html>ccc</option> </select> <select name="select2" onChange="B_Li()"> <option value= new.html selected>選択</option> <option value= ddd.html>ddd</option> <option value= eee.html>eee</option> <option value= fff.html>fff</option> </select> </FORM >

  • 複数のプルダウンメニューの設置(左右フレーム)

    前回プルダウンメニューによる左右フレーム切り替えの質問をさせていただきました。 →http://oshiete1.goo.ne.jp/kotaeru.php3?q=1200405 申し訳ないですが、ここからまた新たに質問させてください。 上部(固定)、左フレーム(プルダウン設置)、右フレーム(メインページ)というページを作っています。 現在の状況はローカルのフォルダの中に ○上フレーム:flame1.htm(完成) ○左フレーム:flame2.htm(←ここに設置したい) ○右メインページ:1.htm 2.htm 3.htm(←1つ目プルダウン)4.htm 5.htm 6.htm(←2つ目のプルダウン) 7.htm 8.htm 9.htm(←3つ目のプルダウン)  と入っている感じです。 <HEAD>~<HEAD>部分 <script language="JavaScript"><!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; parent.main.location.href = document.myForm.myMenu.options[mySelect].value; } // --></script> <BODY>~<BODY>部分 <form name="myForm"> <select name="myMenu" onChange="myGo()"> <option value="1.htm" >第1章 <option value="2.htm" >第2章 <option value="3.htm" >第3章 </select> </form> ↑上記でひとつのプルダウンは設置できるのですが、 2つ目、3つ目のプルダウンの設置となると、 どこをどうしたらよいやらわかりません。 是非ご回答よろしくお願いいたします。

  • 複数のプルダウンメニューの選択項目を変更するには?

    複数のプルダウンメニューを使ってページリンクをさせています。 その際ページリンクと同時に、他のメニューの選択項目を初期値す方法を教えてください。 No.157334で同じような質問があったので、それを参考に以下のように記述してみましたが、 function reSel(c) { for(i=0; i<9; i++){ var s="document.unit.DDList"; var x=s+i; if(x != c){ x.selectedIndex=0; //ココがうまくいきません。 } } } function Li_0(obj){ parent.res.location.href=obj.options[obj.selectedIndex].value; reSel("document.unit.DDList0"); } (以降 Li_8まで同様) <form name="unit" method="post"> <select name="DDList0" size="1" onChange="Li_0(this)"> <option value="help.html" selected> </option> <option value="unit_a.html">AAA</option> <option value="unit_b.html">BBB</option> </select> (以降 DDList8まで同様) です。 どうぞよろしくお願いいたします。

専門家に質問してみよう