2011-07-22 257 views
0

我有2個選擇框更新選擇框選項

  1. Countrynames
  2. 機場

當我選擇第一個選擇框一個COUNTRYNAME一個Ajax請求將被髮送,並返回作爲Airposts列表選項如

" 
<option value='1'>abc 
<option value='3'>lmn 
<option value='2'>xyz 
" 

現在我只需要替換選擇標記的選項。 我試圖做類似

var country_select = document.getElementById("country_select"); 
country_select.options.length = 0; 
country_select.options = response.responseText 

但這種分配不工作怎麼可能我把它做!

+0

是響應html或json?因爲你可能需要做些事情才能使用它。 – nemesisfixx

回答

0

嘗試

var country_select = document.getElementById("country_select"); 
country_select.innerHTML = response.responseText; 
0

這是一個棘手一點,你將不能夠使用它的innerHTML之類的東西做的。 你將不得不改變你的ajax返回機場名稱的方式。而不是<option>abc</option><option>xyz</option>返回由例如||分隔的一串名稱:abc||def||xyz。然後將該字符串分解爲JS中的數組,並從數組中的每個元素創建一個選項元素,並將其添加到下拉列表中。檢查:

<html> 
<head> 
    <script> 
     var ajaxResponse = "abs||def||xyz||test||blah"; 

     function updateOptions(optionsString) 
     { 
      var options = optionsString.split("||"); 

      for(var i=0; i< options.length; i++) 
      { 
       AddItem(options[i], options[i]); 
      } 
     } 

     function AddItem(Text,Value) 
     { 
      var opt = document.createElement("option"); 
      opt.text = Text; 
      opt.value = Value; 

      document.getElementById("mydropdown").options.add(opt); 
     } 

     function removeOptions() 
     { 
      document.getElementById('mydropdown').length = 0; 
     } 
    </script> 
</head> 
<body> 
    <input type="button" onclick="updateOptions(ajaxResponse)" value="update"></input> 
    <input type="button" onclick="removeOptions()" value="remove"></input> 
    <select id="mydropdown"> 
    </select> 
</body> 
</html>