append dropdown option of select 2 in parent element code example
Example 1: select 2 dropdown
$('#element').select2({
placeholder: 'Select a option',
minimumInputLength: 3,
ajax: {
url: route('api.fetch-options'),
dataType: 'json',
type: 'GET',
quietMillis: 50,
data: function (params) {
return {
visitor_name: params.term
}
},
processResults({ data }) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id,
}
})
}
}
}
}).change(() => {
// perform some action on change
});
Example 2: add image in select2 dropdown
$(".class").select2({
templateResult: formatState,
templateSelection: formatState
});
function formatState (opt) {
if (!opt.id) {
return opt.text.toUpperCase();
}
var optimage = $(opt.element).attr('data-image');
console.log(optimage)
if(!optimage){
return opt.text.toUpperCase();
} else {
var $opt = $(
'<span><img src="' + optimage + '" width="60px" /> ' + opt.text.toUpperCase() + '</span>'
);
return $opt;
}
};