试图弄清楚如何在页面首次加载后(以及从ajax api调用加载数据之后)更改select2框的选定项
我尝试使用下面的方法,但是在ajax数据加载后我无法让他们调用吗?
$series2.val('2');
$series2.trigger('change');
文档说它不能使用val函数来完成(请参见此处https://select2.org/programmatic-control/add-select-clear-items),我不希望使用提供“选定”值的自定义API调用来完成此操作-因为这不起作用带有模板。
这不是Select2 auto trigger event change
的副本 var $make2 = $(".make2");
var $series2 = $(".series2");
$make2.select2().on('change', function() {
$series2.empty();
if ($make2.val() !== null) {
$.ajax({
url: "{{ url('/') }}" + "/api/series/" + $make2.val(),
type: 'GET',
dataType: 'json',
async: true,
success: function(data) {
$series2.select2({
data: data,
templateSelection: function(result) {
return result['text'];
},
templateResult: function(result) {
if (!result['id']) {
return result['text'];
};
var final =
'<div>' +
'<strong>' + result['text'] + '</strong>' +
'<ul class="list-unstyled">' +
'<li><em>' + result['make'] + '</em></li>' +
'<li><em>' + result['category'] + '</em></li>' +
'</ul>' +
'</div>';
return final;
},
escapeMarkup: function(result) {
return result;
},
});
}
});
}
}).trigger('change');
});