JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2-rc.1/css/select2.min.css">
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2-rc.1/js/select2.min.js"></script>
<div class="container">
<div class="container">
<h1>
Select2 Tests
</h1>
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab" aria-expanded="true">Tab 1</a></li>
<li role="presentation" class=""><a href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab" aria-expanded="false">Tab 2</a></li>
<li role="presentation" class=""><a href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab" aria-expanded="false">Tab 3</a></li>
<li role="presentation" class=""><a href="#tab4" aria-controls="tab4" role="tab" data-toggle="tab" aria-expanded="false">Tab 4</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="tab1">
<div class="alert alert-success">
This tab is "active" when loading and stay active afterwards. Select2 is displayed as expected.
</div>
<div class="form-group">
<label class="control-label" for="tab1_select2_single">Tab1 Select2 Single</label>
<select id="tab1_select2_single" data-placeholder="Please select Single State - Tab1" class="form-control">
<option value="AK">Alaska</option>
<option value="HI">Hawaii</option>
...
JavaScript
$(function() {
// Activate Select2
$('#tab1_select2_single').select2();
$('#tab1_select2_multiple').select2();
$('#tab2_select2_single').select2();
$('#tab2_select2_multiple').select2();
$('#tab3_select2_single').select2();
$('#tab3_select2_multiple').select2();
// Width hack
$.fn.select2.defaults.set("width", '100%');
$('#tab4_select2_single').select2();
$('#tab4_select2_multiple').select2();
// Everything is loaded, hide the tab2
$('#tab3').removeClass('active');
});