Select

The jQuery replacement for select boxes.

Select2 documentation

How to use?

Add the following library Select2 stylesheet and script in your page.

Copy-paste the stylesheet <link> into your <head> to load the CSS.

              
                <link rel="stylesheet" href="../../assets/vendor/select2/dist/css/select2.min.css">
              
            

Copy-paste the following <script> near the end of your pages under JS Implementing Plugins to enable it.

              
                <script src="../../assets/vendor/select2/dist/js/select2.full.min.js"></script>
              
            

Copy-paste the following <script> near the end of your pages under JS Blueberry to enable it.

              
                <script src="../../assets/js/hs.select2.js"></script>
              
            

Copy-paste the init function under JS Plugins Init., before the closing </body> tag, to enable it.

              
                <script>
                  $(document).on('ready', function () {
                    // initialization of select picker
                    $('.js-custom-select').each(function () {
                      var select2 = $.HSCore.components.HSSelect2.init($(this));
                    });
                  });
                </script>
              
            

Basic example

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity"
                              }'>
                        <option value="1">Bruce Maynard</option>
                        <option value="2">Hollis Clark</option>
                        <option value="3">Lester Howard</option>
                        <option value="4">George Marino</option>
                        <option value="5">Tyler Johnson</option>
                        <option value="6">Jennifer Craig</option>
                        <option value="7">Martha Barnwell</option>
                        <option value="8">Florencia Todd</option>
                        <option value="9">Henry Sloan</option>
                        <option value="10">Abigail Watson</option>
                      </select>
                      <!-- End Select -->
                    
                  

Placeholder

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity",
                                "placeholder": "Select member"
                              }'>
                        <option label="empty"></option>
                        <option value="1">Bruce Maynard</option>
                        <option value="2">Hollis Clark</option>
                        <option value="3">Lester Howard</option>
                        <option value="4">George Marino</option>
                        <option value="5">Tyler Johnson</option>
                        <option value="6">Jennifer Craig</option>
                        <option value="7">Martha Barnwell</option>
                        <option value="8">Florencia Todd</option>
                        <option value="9">Henry Sloan</option>
                        <option value="10">Abigail Watson</option>
                      </select>
                      <!-- End Select -->
                    
                  

Custom width

Use dropdownAutoWidth and width props.

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity",
                                "dropdownAutoWidth": true,
                                "width": "auto"
                              }'>
                        <option value="1">6 entries</option>
                        <option value="2">12 entries</option>
                        <option value="3">18 entries</option>
                        <option value="4">24 entries</option>
                      </select>
                      <!-- End Select -->
                    
                  

Multiple

                    
                      <!-- Select -->
                      <select class="js-custom-select" multiple
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity"
                              }'>
                        <option value="1" selected>Life</option>
                        <option value="2">Custom</option>
                        <option value="3">New</option>
                        <option value="4">Best Saller</option>
                        <option value="5">Language</option>
                        <option value="6">Stream</option>
                        <option value="7">HTML</option>
                        <option value="8">PHP</option>
                        <option value="9">JavaScript</option>
                        <option value="10">Vue.js</option>
                      </select>
                      <!-- End Select -->
                    
                  

Multiple selection

                    
                      <!-- Select -->
                      <select class="js-custom-select" multiple
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity",
                                "singleMultiple": true,
                                "placeholder": "Select user"
                              }'>
                        <option value="1" selected>Life</option>
                        <option value="2" selected>Custom</option>
                        <option value="3">New</option>
                        <option value="4" selected>Best Saller</option>
                        <option value="5">Language</option>
                        <option value="6">Stream</option>
                        <option value="7" selected>HTML</option>
                        <option value="8">PHP</option>
                        <option value="9">JavaScript</option>
                        <option value="10">Vue.js</option>
                      </select>
                      <!-- End Select -->
                    
                  

Optgroup

Use <optgroup> tag

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity"
                              }'>
                        <optgroup label="Optgroup 1">
                          <option value="item-1-1">Item 1</option>
                          <option value="item-1-2">Item 2</option>
                        </optgroup>
                        <optgroup label="Optgroup 2">
                          <option value="item-2-1">Item 1</option>
                          <option value="item-2-2">Item 2</option>
                        </optgroup>
                      </select>
                      <!-- End Select -->
                    
                  

With append

                    
                      <!-- Input Group -->
                      <div class="input-group">
                        <div class="input-group-prepend">
                          <select class="js-custom-select"
                                  data-hs-select2-options='{
                                    "minimumResultsForSearch": "Infinity",
                                    "width": "140px"
                                  }'>
                            <option value="1" selected>All</option>
                            <option value="2">HTML</option>
                            <option value="3">CSS</option>
                            <option value="4">JS</option>
                            <option value="5">PHP</option>
                            <option value="6">Vue.js</option>
                            <option value="7">React</option>
                            <option value="8">Angular</option>
                            <option value="9">Ruby</option>
                            <option value="10">Python</option>
                          </select>
                        </div>
                        <input type="text" class="form-control" placeholder="Search">
                        <div class="input-group-append">
                          <a class="btn btn-primary" href="#">
                            Search
                          </a>
                        </div>
                      </div>
                      <!-- End Input Group -->
                    
                  

Placeholder with icon/image

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity",
                                "placeholder": "<span class=\"d-flex align-items-center\"><i class=\"far fa-user icon-text mr-2\"></i> Select member</span>"
                              }'>
                        <option label="empty"></option>
                        <option value="1">Bruce Maynard</option>
                        <option value="2">Hollis Clark</option>
                        <option value="3">Lester Howard</option>
                        <option value="4">George Marino</option>
                        <option value="5">Tyler Johnson</option>
                        <option value="6">Jennifer Craig</option>
                        <option value="7">Martha Barnwell</option>
                        <option value="8">Florencia Todd</option>
                        <option value="9">Henry Sloan</option>
                        <option value="10">Abigail Watson</option>
                      </select>
                      <!-- End Select -->
                    
                  

Custom tags

                    
                      <!-- Select -->
                      <select class="js-custom-select" multiple
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity",
                                "placeholder": "Type tags here...",
                                "tags": true
                              }'>
                        <option label="empty"></option>
                      </select>
                      <!-- End Select -->
                    
                  

Dynamic option creation

                    
                      <!-- Select -->
                      <select class="js-custom-select form-control"
                              data-hs-select2-options='{
                                "tags": true
                              }'>
                        <option value="january" selected>Apple</option>
                        <option value="february">Orange</option>
                      </select>
                      <!-- End Select -->
                    
                  

With images

                    
                      <!-- Select -->
                      <select class="js-custom-select"
                              data-hs-select2-options='{
                                "placeholder": "Select wallet"
                              }'>
                        <option value="1" selected data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img1.jpg" alt="Image description" /><span>Katy Nelson</span></span>'>
                          Katy Nelson
                        </option>
                        <option value="2" data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img2.jpg" alt="Image description" /><span>Maria Williams</span></span>'>
                          Maria Williams
                        </option>
                        <option value="3" data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img4.jpg" alt="Image description" /><span>Karl Marks</span></span>'>
                          Karl Marks
                        </option>
                        <option value="4" data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img8.jpg" alt="Image description" /><span>Adam Brown</span></span>'>
                          Adam Brown
                        </option>
                        <option value="5" data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img11.jpg" alt="Image description" /><span>Sara Pak</span></span>'>
                          Sara Pak
                        </option>
                        <option value="6" data-option-template='<span class="d-flex align-items-center"><img class="avatar-xs rounded-circle mr-2" src="../../assets/img/100x100/img10.jpg" alt="Image description" /><span>Victoria Drizz</span></span>'>
                          Victoria Drizz
                        </option>
                      </select>
                      <!-- End Select -->
                    
                  

Disabled

                    
                      <!-- Select -->
                      <select class="js-custom-select" disabled
                              data-hs-select2-options='{
                                "minimumResultsForSearch": "Infinity"
                              }'>
                        <option value="1">Bruce Maynard</option>
                        <option value="2">Hollis Clark</option>
                        <option value="3">Lester Howard</option>
                        <option value="4">George Marino</option>
                        <option value="5">Tyler Johnson</option>
                        <option value="6">Jennifer Craig</option>
                        <option value="7">Martha Barnwell</option>
                        <option value="8">Florencia Todd</option>
                        <option value="9">Henry Sloan</option>
                        <option value="10">Abigail Watson</option>
                      </select>
                      <!-- End Select -->
                    
                  

Extend

By assigning a variable, you can call the standard methods of the plugin:

              
                <script>
                  $(document).on('ready', function () {
                    // initialization of select2
                    $('.js-custom-select').each(function () {
                      var select2 = $.HSCore.components.HSSelect2.init($(this));

                      select2.on('select2:open', () => {
                        alert('Open!')
                      })
                    });
                  });
                </script>
              
            

Attributes

By assigning a variable, you can call the standard methods of the plugin:

              
                data-hs-select2-options='{
                 ...
              }' - array
              
            

Methods

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-hs-select2-options='{}'. For more detailed or missing attributes/functions, see the official Select2 documentation page.

Parameters Description Default value

customClass

Class for select field custom-select

width

Width of input 100%

searchInputPlaceholder

Placeholder for serach input inside container false

singleMultiple

Placeholder for serach input inside container false

multiplePlaceholder

Text neasted input with tags for multiple select false
Logo

Developed by Nasim Mahmud's team | Blueberry Framework · Powered by Nimusoft

© Blueberry. 2020 Nimusoft. All rights reserved.