2011-07-22 218 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>