Reputation: 618
I add Bootstrap 4 theme using select2 bootstrap theme to select2 and need to add <span></span>
to text using formatState
method.
My HTML code is:
<div class="fieldset fieldset-1">
<label for="color">Choose color</label>
<select name="color" class="select2">
<option value="grn">Green</option>
<option value="blu">Blue</option>
<option value="brn">Brown</option>
<option value="blk">Black</option>
<option value="red">Red</option>
<option value="yel">Yellow</option>
<option value="wht">White</option>
</select>
</div>
And Js:
function formatState (state) {
if (!state.id) {
return state.text;
}
var baseUrl = "/user/pages/images/flags";
var $state = $(
'<span><img src="' + baseUrl + '/' + state.element.value.toLowerCase() + '.png" class="img-flag" /> ' + state.text + '</span>'
);
return $state;
};
$(".select2").select2({
templateResult: formatState
});
$('select').select2({
theme: 'bootstrap4',
});
In action select2 not show <span></span>
. i check my Js Code and remove this line(bootstrap 4 theme):
$('select').select2({
theme: 'bootstrap4',
});
now select2 work and I see <span></span>
. How do can I fix this problem?!
Upvotes: 1
Views: 741
Reputation: 338
Try following in JS
function formatState (state) {
if (!state.id) {
return state.text;
}
var baseUrl = "/user/pages/images/flags";
var $state = $(
'<span><img src="' + baseUrl + '/' + state.element.value.toLowerCase() +
'.png" class="img-flag" /> ' + state.text + '</span>'
);
return $state;
};
$(".select2").select2({
theme: 'bootstrap4',
templateResult: formatState
});
Upvotes: 1