我要在 Laravel 上创建用户个人资料页面,并使用 select2 组件过滤大量项目。
我有一个基于Ajax的select2。当您在/create
页上时很好,但是当我在/edit/1
页上时,我需要在其中选择值。
$('.search-filter-ajax').select2({
width: '100%',
minimumInputLength: 3,
placeholder: "Search...",
ajax: {
url: '/api/listing/search/',
data: function (term) {
return {
data: term.term
};
},
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
search_from: item.name,
model: 'some_model',
id: item.id
}
})
};
},
dataType: 'json',
type: "GET",
delay: 250,
},
});
我尝试使用initSelection
函数,但是没有运气,因为当我需要真正的select2
组件时,它仅创建<option value="1"> something </option>
文本元素。
initSelection: function (element, callback) {
var id = $(element).data('select-id');
var text = $(element).data('select-text');
callback({ id: id, text: text });
},
如何在页面加载时在select2中有一个有效的预选选项,但仍然有机会通过onChange触发ajax调用?
答案 0 :(得分:1)
好吧,您可以尝试使用自己的逻辑来生成选择选项,例如
$.ajax().then((res)=>{
$('#select').html('');
res.data.forEach((item)={$('#select').append($('option').text(item.text).value(item.value);)})
})