2017-01-25 78 views
0

如果我有幾個列表框,其中第一個列表框通過json文件填充,然後第二個列表框根據第一個列表中的選擇填充,那麼如何獲得第二個填充onload?如何在初始加載頁面時根據第一個列表框動態填充第二個列表框?

首先列表框中負載抓例如myfile.json,其中有

{ [ { "snow project", "12345" }, { "rain project", "23245" } ]} 

要生成例如雪上項目爲重點和Val列表框是12345的第二個列表框抓住myfile_12345.json填充第二框。如果我選擇rain項目,它會抓取數據並填充第二個列表框,但是我希望第二個列表框可以爲第一個選定項目添加數據onload,這可能隨着myfile.json文件中的內容更改而改變。

+0

p.s.會有第三個列表框,是的,接下來根據第二個列表框填充。 – archcutbank

回答

0

創建列表框的相同代碼允許我設置第二個。我不確定當我添加更多內容時,這將是多麼簡單或實用。

<script type="text/javascript"> 
      var $select = $('#project'); 
      $.getJSON('bamboo_projects.json', function(data,status) { 
        $select.html(''); 
        $.each(data, function(key,val) { 
          if (val.id != 'undefined' && $('#project option:selected').length == 0) { 
            getRelease(val.id); 
          } 
          $select.append('<option value="' + val.id + '">' + val.name + '</options>'); 
        }); 
      }); 
    </script> 

我創建了第一個框,當它即將添加第一個選項並運行我用它來獲得第二框的內容相同的代碼時檢查。

請注意,我嘗試過var selected_item = val.id,但在$ .each和$ .getJSON代碼完成後,selected_item超出了範圍,因此我使用$ .each循環內的值代替。關於如何將價值保持在範圍內的想法?我試圖在$ .getJSON/$。each循環之外設置var selected_item,但它仍然沒有保留這個值。

相關問題