【问题标题】:Javascript - Filling Combo Box with new dataJavascript - 用新数据填充组合框
【发布时间】:2013-03-10 12:34:47
【问题描述】:

我正在尝试用来自 AJAX 的数据填充组合框(输入)。这是为了获取选定州的每个城市,该州在另一个选择控件(州控件)上被选中。

我的尝试:

I'm using the "change" event on the state comboBox, when a state is selected i search for it cities and populate the city control.

            $("#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);
            }
        });
    }

}

【问题讨论】:

  • 请不要考虑不匹配的变量名,因为代码都是葡萄牙语,我翻译了变量,但有些我忘记了。 (如 respostra 或 cod_cidades)。数据正确,人口问题就是问题。

标签: javascript ajax select input combobox


【解决方案1】:

jQuery:

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

javascript:

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

在添加之前使用它,然后它将删除所有以前的选项。

see here

【讨论】:

  • 感谢您的回答!我在工作,我会尽快尝试:D
  • @Rafael F Violato 没问题
  • 好吧,那行不通。我想我可能错误地解释了我的问题。举个例子:我选择德克萨斯州。然后我必须单击州 上选择了 Fenix TX。没问题,但是我再次进入状态组合并选择 Tenesse,但 Fenix 仍然存在并且它保持选中状态,直到我再次单击城市 在更改状态组合上的状态时更改选定的显示选项。
  • 因为我触发了状态的变化
猜你喜欢
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 2012-09-11
相关资源
最近更新 更多