Я не знаю, столкнется ли кто-нибудь еще с этой проблемой, но после некоторого поиска я нашел решение.Мой выпадающий список является материализованным (выпадающим) селектором, но для его инициализации требуется скрипт.Это не очень понятно в их документации, но вы также должны включить метод OnChange.
Синтаксис на странице не совсем соответствует последней версии, но после игры я получил еена работу.
<script type="text/javascript">
//~Method below is needed to initialize the materialize selection dropdown
$(document).ready(function(){
$('select').formSelect();
});
//~Method below is needed to add the update feature when dynamically adding options
//~This must be triggered after the changes occur in the ajax call.
$('SELECT').on('contentChanged', function() {
$(this).formSelect();
});
</script>
Еще один маленький нюанс (-_-), вы также должны активировать его.Я предположил, даже после обнаружения, что изменение означает, что это слушатель любого изменения, но вы должны включить его в свой вызов Ajax.
$.ajax({
method: 'GET',
url: "django_url_to_your_script",
data:{"test":"test"},
success:function(data){
var op_items = data.symbols;
var markets = data.markets;
for(var i = 0 ; i < op_items.length; i++){
option = "<option value="+ op_items[i]+">"+ op_items[i].toString() +"</option>";
$("#symbol_selection select").append(option);
}
for(var i = 0 ; i < markets.length; i++){
option = "<option value="+ markets[i] + ">"+ markets[i] +"</option>";
$("#market_selection select").append(option);
}
//THIS IS THE KEY! AFTER ALL YOU ADDITIONS HAVE BEEN MADE
//FORCE THE ONCHANGE TRIGGER TO OCCUR.
$("#market_selection select").trigger('contentChanged');
$("#symbol_selection select").trigger('contentChanged');
},
});
Теперь я получаю свой выпадающий список, который был добавлен: