2015-04-26 3 views
0

В моем combobox не отображаются какие-либо элементы после запуска метода загрузки. Я отлаживал свой цикл, и я вижу, что он пытается заполнить свой combobox (или выглядит так, как будто он это делает), но в combobox нет элементов. Что я делаю не так?Populating ComboBox с данными JSON

HTML:

<select id="filterComboBox"> 
</select> 

JSON данные:

{ 
    "Filters": [ 
     { 
      "text": "Sys", 
      "value": "Sys" 
     }, 
     { 
      "text": "EE/RF", 
      "value": "EE/RF" 
     }, 
     { 
      "text": "ME", 
      "value": "ME" 
     } 
    ] 
} 

Метод загрузки выпадающий:

function populateFiltersComboBox(path) { 
    $.getJSON(path) 
    .done(function (data) { 
     if (!data) { 
      return 
     } 

     $(data.Filters).each(function() { 
      debugger; 

      var option = $('<option />'); 

      option.attr('value', this.value).text(this.text); 

      $('#filterComboBox').append(option); 
     }); 
    }); 
} 
+0

Я только что понял, что функция jQuery, которую я использовал для создания select, запускалась после моей функции заполнения, и это вызывало удаление всех элементов. Это было слишком долго сегодня :( – Wannabe

ответ

0

Попробуйте

$('#filterComboBox').append('<option value="' + this.value + '">' + this.text + '</option>'); 

select придирчив к тому, как вы поступаете. Я рекомендую просто добавлять HTML.

+0

Спасибо. Я понял свою проблему, и теперь у меня это работает. Кроме того, в вашем ответе значение $ (this). Thevalue заставляет выбор быть заполненным [object] вместо текста. Я изменил его на «это», и он правильно ввел текст. – Wannabe

Смежные вопросы