JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/js/select2.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/css/select2.min.css">
<form action="" id="tagForm">
<select multiple="true" name="tags[]" id="tagSelector" class="form-control select2">
<option value="1">Awsome</option>
<option value="2">Cool</option>
<option value="3">Balls</option>
</select>
</form>
<div class="well" id="console">
<h3>Tag events:</h3>
</div>
JavaScript
$('.select2').select2({
tags: true,
tokenSeparators: [",", " "],
createTag: function (tag) {
return {
id: tag.term,
text: tag.term,
isNew : true
};
}
}).on("select2:select", function(e) {
if(e.params.data.isNew){
$('#console').append('<code>New tag: {"' + e.params.data.id + '":"' + e.params.data.text + '"}</code><br>');
$(this).find('[value="'+e.params.data.id+'"]').replaceWith('<option selected value="'+e.params.data.id+'">'+e.params.data.text+'</option>');
}
});