2013-03-21 144 views
0

我想用AJAX中的數據填充組合框(輸入)。這是爲了讓每個城市處於選定狀態,這是在另一個選擇控件(狀態控件)上選擇的。Javascript - 用新數據填充組合框

我已經試過什麼:

我使用的狀態組合框的「改變」事件,當選擇的狀態下我尋找它的城市和填充城市的控制。

  $("#state").on("change", function() { 

      getCities($(this), $("#city")); 
     }); 

這實際上是工作,但我真正的問題是:當我把這個數據來控制,我必須點擊它來填充它(前狀態信息仍然存在),我真希望當我完成在狀態選擇輸入上選擇狀態時完成。與此相關的另一個問題是選擇第一個選項(--- SELECT CITY ---),每當狀態選擇輸入改變它的城市時。下面是功能代碼:

function getCities(stateControl, cityControl) { 

    if (stateControl.val()) { 
     var options = '<option value="0" selected="selected">--- CHOOSE CITY --- </option>'; 
     cityControl.html(options); 
     var dataString = "state="+stateControl.val(); 
     $.ajax({ 
      type: "POST", 
      url: "cities.php", 
      data: dataString, 
      dataType: "json", 
      success: function (resposta) { 

        for(var i=0; i < resposta.length; i++){  
         options += '<option value="' + city[i].cod_cidade + '">' + cities[i].nome + '</option>';              
        }; 
        controleCidades.html(options); 
      } 
     }); 
    } 

}

+0

請disconsider不匹配的變量名,因爲代碼是所有在葡萄牙和我翻譯過來的變量,但有些我忘了。 (如respostra或cod_cidades)。 數據正確,填充問題是問題。 – 2013-03-21 05:23:51

回答

0

jQuery的:添加,然後它會刪除所有以前的選項之前

document.getElementById('city').options.length = 0; 

使用本:

$("#city").find('option').remove(); 

的JavaScript。

see here

+0

謝謝你的回答!即時在工作中,我會盡快嘗試這一點:D – 2013-03-21 18:36:19

+0

@Rafael F Violato ok沒問題 – PSR 2013-03-21 18:37:13

+0

嗯,那沒用。我想我可能會解釋我的問題是錯誤的。讓我舉一個例子:我選擇德克薩斯州。然後,我必須點擊州。沒問題,但後來我再次進入狀態組合並選擇了Tenesse,但Fenix仍然存在,並且保持選中狀態,直到我再次點擊城市改變所選的顯示選項,因爲我改變狀態組合狀態。 – 2013-03-22 18:53:15