Analytics

2010年6月15日 星期二

[Javascript]下拉式選單連動(Dropdown linked)


問題

下拉式選單連動



解決方法

資料來源:javaworld
<html>   
  <script>    
    // 通常,當資料選項的變動性不大時,都會直接寫成 .js 檔含入即可。    
    var country = new Array();          
    // 看幾個國家         
    country[0] = '台灣';         
    country[1] = '中國';         
    country[2] = '日本';         
    var city = new Array();    
    city[0] = new Array();    
    // 台灣的城市    
    city[0][0] = '台北';         
    city[0][1] = '台中';         
    city[0][2] = '台南';         
    city[0][3] = '高雄';         
    city[1] = new Array();    
    // 中國的城市         
    city[1][0] = '北京';         
    city[1][1] = '上海';         
    city[1][2] = '南京';         
    city[2] = new Array();    
    // 日本的城市         
    city[2][0] = '東京';         
    city[2][1] = '名古屋';         

// 載入 master 選單,同時初始化 detail 選單內容    
    function loadMaster( master, detail ) 
    {    
      master.options.length = country.length;    
      for( i = 0; i < country.length; i++ ) 
      {    
        master.options[ i ] = new Option( country[i], country[i] );  
        // Option( text , value );    
      }    
      master.selectedIndex = 0;    
      doNewMaster( master, detail );    
    }    
    // 當 master 選單異動時,變更 detail 選單內容    
    function doNewMaster( master, detail ) {    
      detail.options.length = city[ master.selectedIndex ].length;    
      for( i = 0; i < city[ master.selectedIndex ].length; i++ ) 
      {    
        detail.options[ i ] = new Option( city[ master.selectedIndex ][ i ],    
                                          city[ master.selectedIndex ][ i ] );    
      }    
    }    
  </script>    
  <body onload="loadMaster( document.getElementById( 'country' ), document.getElementById( 'city' ) );">    
    <select name="country" id="country"     
        onChange="doNewMaster( document.getElementById( 'country' ),document.getElementById( 'city' ) );">    
   </select>    
   <select name="city" id="city">    
   </select>    
   </body>    
</html>

沒有留言:

熱門文章