JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://raw.github.com/meetselva/combobox/master/combobox.js"></script>
<div class="btn-group">
<select id="myCombo" style="display:none;">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
</select>
<input type="text" id="editableBox" />
</div>
CSS
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,dialog,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,meter,nav,object,ol,output,p,pre,progress,q,rp,rt,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video,xmp{border:0;margin:0;padding:0;font-size:100%}html,body{height:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,strong{font-weight:bold}img{color:transparent;font-size:0;vertical-align:middle;-ms-interpolation-mode:bicubic}li{display:list-item}table{border-collapse:collapse;border-spacing:0}th,td,caption{font-weight:normal;vertical-align:top;text-align:left}q{quotes:none}q:before,q:after{content:'';content:none}sub,sup,small{font-size:75%}sub,sup{line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}svg{overflow:hidden}
.cb-wrapper {
position: absolute;
border: 1px solid #c2c2c2;
}
.cb-wrapper li {
list-style: none;
min-height: 11px;
padding: 1px 2px;
margin: 1px;
border: 1px solid white;
}
.active {
border-color: grey;
background-color: #c2c2c2;
}
JavaScript
$(document).ready(function () {
// v-- textbox that will be replacing the drop down
$('#editableBox').combobox({
optionEl: '#myCombo',
/* source options imported from this drop down selector*/
width: $('#editableBox').outerWidth() - 2,
/* width of the combobox drop down */
filterType: 'contains',
/* Type of filter to apply on the options (starts-with, contains, or blank for no filtering) */
onSelect: function () {
alert('option selected value ' + $('#editableBox').val());
}
});
});