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: [",", " "]
}).on("change", function(e) {
var isNew = $(this).find('[data-select2-tag="true"]');
if(isNew.length && $.inArray(isNew.val(), $(this).val()) !== -1){
isNew.replaceWith('<option selected value="' + isNew.val() + '">' + isNew.val() + '</option>');
$('#console').append('<code>New tag: {"' + isNew.val() + '":"' + isNew.val() + '"}</code><br>');
}
});