選択された項目に応じて片方のメニューを表示/非表示にする


動作ブラウザ 【 IE:4.0   NN:3.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 7.0 7.x 2.x 1.x
Windows × - × -
Macintosh × - ×
UNIX - - - - - × -

ポイント if (menuItem[n].length > 0) { document.myForm.Computer.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.myForm.Computer.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } }else{ document.myForm.Computer.style.visibility = "hidden"; }
説  明 2つあるメニューのうち特定の項目の場合のみ片方のメニューを表示しないようにするには、片方に表示する項目の数を調べて0だったら非表示にし、1以上であれば表示するように処理します。これはスタイルシートのvisibilityプロパティを操作します。"visible"を設定すると表示、"hidden"を設定すると非表示になります。
サンプル <html> <head> <title>選択された項目に応じて片方のメニューを表示/非表示にする</title> <script language="JavaScript"><!-- menuItem = [ ["MZ-80K","MZ-700","MZ-2500"], ["PC-6001","PC-8001","PC-8801","PC-9801","PC-9821"], [ ], ["FM-8","FM-7","FM-11","FM-77AV"] ]; function setMenuItem(n) { len = document.myForm.Computer.options.length; for (i=0; i<len; i++) { document.myForm.Computer.options[i] = null; } if (menuItem[n].length > 0) { document.myForm.Computer.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.myForm.Computer.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } }else{ document.myForm.Computer.style.visibility = "hidden"; } } // --></script> </head> <body> <form name="myForm"> <select name="Maker" onChange="setMenuItem(this.selectedIndex)"> <option value="SHARP">SHARP</option> <option value="NEC">NEC</option> <option value="BANDAI">RX-78</option> <option value="FUJITSU">FUJITSU</option> </select> <select name="Computer"> <option value="MZ-80K">MZ-80K</option> <option value="MZ-700">MZ-700</option> <option value="MZ-2500">MZ-2500</option> </select> </form> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA