Skip to content
Devix Open Source

Enhance a <select>

The markup is a plain grouped <select>; the widget adds search, keywords, highlighting and a keyboard.

Live preview
<form class="demo" onsubmit="event.preventDefault()">
  <div class="demo-field">
    <label class="demo-label" for="country">Country <span class="demo-hint">· try “emirat”, “+92”, “bsa”</span></label>
    <select id="country" name="country">
      <option value="">Pick a country</option>
      <optgroup label="Gulf">
        <option value="ae" data-description="+971" data-keywords="UAE|Emirates">United Arab Emirates</option>
        <option value="sa" data-description="+966" data-keywords="KSA">Saudi Arabia</option>
        <option value="qa" data-description="+974">Qatar</option>
        <option value="om" data-description="+968">Oman</option>
        <option value="kw" data-description="+965">Kuwait</option>
        <option value="bh" data-description="+973">Bahrain</option>
      </optgroup>
      <optgroup label="Asia">
        <option value="pk" data-description="+92" selected>Pakistan</option>
        <option value="in" data-description="+91">India</option>
        <option value="bd" data-description="+880">Bangladesh</option>
        <option value="lk" data-description="+94">Sri Lanka</option>
        <option value="ph" data-description="+63">Philippines</option>
      </optgroup>
      <optgroup label="Europe">
        <option value="gb" data-description="+44">United Kingdom</option>
        <option value="de" data-description="+49">Germany</option>
        <option value="ro" data-description="+40">Romania</option>
        <option value="ba" data-description="+387">Bosnia and Herzegovina</option>
      </optgroup>
    </select>
  </div>
  <div class="demo-kv">
    <div><span class="demo-hint">getValue()</span><br><b id="value">pk</b></div>
    <div><span class="demo-hint">form posts</span><br><b id="posts">country=pk</b></div>
  </div>
</form>