2013-03-21 141 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