I attached preselected values of 
I tried with below code.
$.ajax({
type: 'POST',
dataType: 'json',
url: "/wp-admin/admin-ajax.php",
data: {
element_id: element_id,
action: 'get_preselect_values',
},
}).then(function (data) {
var options = [];
if (data) {
$.each(data, function (index,text) {
var user_data = '<table> \
<tr> \
<td>Organisation</td> \
<td>' text[0][1] '</td> \
</tr> \
<tr> \
<td>Age</td> \
<td>' text[0][0] '</td> \
</tr> \
</table>';
var opt = new Option(text['text'], text['id'], true, true);
opt.attr("title",user_data);
options.push(opt);
});
}
selectEle.trigger('change');
CodePudding user response:
Try method of select2 when an item is selected
$('#example').on('select2:select', function (e) {
$(this).attr('title', 'some value title');
});
CodePudding user response:
I think you are looking for templateSelection option.
$(".js-example-templating").select2({
templateSelection: formatState,
});
function formatState(state) {
return $(
`<span class='tooltip' title='${state.title}'>${state.text}</span>`
);
}
Edit: add selectEle.append(opt); before triggering change
$.ajax({
type: "POST",
dataType: "json",
url: "/wp-admin/admin-ajax.php",
data: {
element_id: element_id,
action: "get_preselect_values",
},
}).then(function (data) {
// var options = [];
if (data) {
$.each(data, function (index, text) {
var user_data =
"<table> \
<tr> \
<td>Organisation</td> \
<td>"
text[0][1]
"</td> \
</tr> \
<tr> \
<td>Age</td> \
<td>"
text[0][0]
"</td> \
</tr> \
</table>";
var opt = new Option(text["text"], text["id"], true, true);
opt.attr("title", user_data);
// options.push(opt);
selectEle.append(opt); // added codes
});
selectEle.trigger("change");
}
});
