JSFiddle - React, Tailwind, and code Playground

by Kishore Sahasranaman

HTML

<script src="http://github.com/ehynds/jquery-ui-multiselect-widget/raw/1.13/src/jquery.multiselect.min.js"></script>
<link rel="stylesheet" href="http://github.com/ehynds/jquery-ui-multiselect-widget/raw/1.13/jquery.multiselect.css">
<script src="http://github.com/ehynds/jquery-ui-multiselect-widget/raw/master/src/jquery.multiselect.filter.js"></script>
<link rel="stylesheet" href="http://github.com/ehynds/jquery-ui-multiselect-widget/raw/master/jquery.multiselect.filter.css">
<select multiple="multiple">
<option selected="selected" value="AL">Alabama</option> 
<option value="AK">Alaska</option> 
<option selected="selected" value="AZ">Arizona</option> 
<option value="AR">Arkansas</option> 
<option selected="selected" value="CA">California</option> 
<option value="CO">Colorado</option> 
<option value="CT">Connecticut</option> 
<option value="DE">Delaware</option> 
<option value="DC">District Of Columbia</option> 
 </select>

CSS

*{
   font-size: 90%;
}

.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
.ui-multiselect span.ui-icon { float:right }
.ui-multiselect-single .ui-multiselect-checkboxes input { position:absolute !important; top: auto !important; left:-9999px; }
.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important }

.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
.ui-multiselect-header ul { font-size:0.9em }
.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
.ui-multiselect-header a { text-decoration:none }
.ui-multiselect-header a:hover { text-decoration:underline }
.ui-multiselect-header span.ui-icon { float:left }
.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }

.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left }
.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:scroll }
.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
.ui-multiselect-checkboxes label input { position:relative; top:1px }
.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }

/* remove label borders in IE6 because IE6 does not support transparency */
* html .ui-multiselect-checkboxes label { border:none }


.ui-multiselect-hasfilter ul { position:relative; top:2px }
.ui-multiselect-filter { float:left; margin-right:10px; font-size:11px }
.ui-multiselect-filter input { width:100px; font-size:10px; margin-left:5px; height:15px; padding:2px; border:1px solid #292929; -webkit-appearance:textfield; -webkit-box-sizing:content-box; }


.ui-multiselect {
        padding: 2px 0...

JavaScript

$("select").multiselect()
    .bind("multiselectclick multiselectcheckall multiselectuncheckall", function( event, ui ){
        var checkedValues = $.map($(this).multiselect("getChecked"), function( input ){
            return input.title;
        });
        $('button.ui-multiselect').attr('title',checkedValues.join(', '));
    })
    .triggerHandler("multiselectclick")
    .multiselectfilter();