web
mobile
Edit these docs Rate these docs

Multiselect MDB Pro component

Bootstrap Multiselect

Bootstrap Multiselect is a jQuery based plugin that allows users to tick multiple options from a standard Bootstrap select.

Its implementation is quite simple, and in exchange brings a lot of UX value.

Examples of Bootstrap Multiselect use:

  • Ingredient choice within a pizza delivery system
  • Laptop hardware configuration an online shop
  • Flight booking customization

See the following mutliselect dropdown examples:


Default multiselect



            <select class="custom-select" multiple>
              <option selected>Open this select menu</option>
              <option value="1">One</option>
              <option value="2">Two</option>
              <option value="3">Three</option>
            </select>

          

Material design MDB Pro component



            <div class="row">
              <div class="col-md-12">

                <select class="mdb-select colorful-select dropdown-primary md-form" multiple searchable="Search here..">
                  <option value="" disabled selected>Choose your country</option>
                  <option value="1">USA</option>
                  <option value="2">Germany</option>
                  <option value="3">France</option>
                  <option value="4">Poland</option>
                  <option value="5">Japan</option>
                </select>
                <label class="mdb-main-label">Label example</label>
                <button class="btn-save btn btn-primary btn-sm">Save</button>

              </div>
            </div>
            
          


            // Material Select Initialization
            $(document).ready(function() {
            $('.mdb-select').materialSelect();
            });
            
          

Overwriting a standard select

MDB overwrites a standard select to replace it with our Material Select. That's why before you can use it, you have to initialize Material Select by placing the following code in your project.

In addition, you will need a separate call for any dynamically generated select elements your page generates.

Initialization:



      // Material Select Initialization
      $(document).ready(function() {
      $('.mdb-select').materialSelect();
      });
    

Full documentation of our select

You can find detailed documentation and all available options in our Material Select documentation.


Standard multiselect MDB Pro component



        <select class="mdb-select md-form" multiple>
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="4">Poland</option>
          <option value="5">Japan</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with label MDB Pro component



        <select class="mdb-select md-form" multiple>
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="3">Poland</option>
          <option value="3">Japan</option>
        </select>
        <label class="mdb-main-label">Label example</label>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Colorful Multiselect with label MDB Pro component



        <select class="mdb-select md-form colorful-select dropdown-danger" multiple>
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="3">Poland</option>
          <option value="3">Japan</option>
        </select>
        <label class="mdb-main-label">Label example</label>
        <button class="btn-save btn btn-danger btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with options groups MDB Pro component



        <select class="mdb-select md-form" multiple>
          <optgroup label="team 1">
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
          </optgroup>
          <optgroup label="team 2">
            <option value="3">Option 3</option>
            <option value="4">Option 4</option>
          </optgroup>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with icons MDB Pro component



        <select class="mdb-select md-form" multiple>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-1.jpg" class="rounded-circle">
            example
            1</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-2.jpg" class="rounded-circle">
            example
            2</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-3.jpg" class="rounded-circle">
            example
            3</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with search box MDB Pro component



        <select class="mdb-select md-form" multiple searchable="Search here..">
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="3">Poland</option>
          <option value="3">Japan</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with label and search box MDB Pro component



        <select class="mdb-select md-form" multiple searchable="Search here..">
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="3">Poland</option>
          <option value="3">Japan</option>
        </select>
        <label class="mdb-main-label">Label example</label>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Colorful Multiselect with label and search box MDB Pro component



        <select class="mdb-select md-form colorful-select dropdown-primary" multiple searchable="Search here..">
          <option value="" disabled selected>Choose your country</option>
          <option value="1">USA</option>
          <option value="2">Germany</option>
          <option value="3">France</option>
          <option value="3">Poland</option>
          <option value="3">Japan</option>
        </select>
        <label class="mdb-main-label">Label example</label>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with options groups and search box MDB Pro component



        <select class="mdb-select" multiple searchable="Search here..">
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-1.jpg" class="rounded-circle">
            example
            1</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-2.jpg" class="rounded-circle">
            example
            2</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-3.jpg" class="rounded-circle">
            example
            3</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with icons and search box MDB Pro component



        <select class="mdb-select md-form" multiple searchable="Search here..">
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-1.jpg" class="rounded-circle">
            example
            1</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-2.jpg" class="rounded-circle">
            example
            2</option>
          <option value="" data-icon="https://mdbootstrap.com/img/Photos/Avatars/avatar-3.jpg" class="rounded-circle">
            example
            3</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>

      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Multiselect with FA icons and search box MDB Pro component



        <select class="mdb-select md-form" multiple searchable="Search here..">
          <option value="" data-fas="laptop blue-text"> example 1</option>
          <option value="" data-far="circle red-text">
            example
            2</option>
          <option value="" data-fab="facebook brown-text">
            example
            3</option>
        </select>
        <button class="btn-save btn btn-primary btn-sm">Save</button>
      


        // Material Select Initialization
        $(document).ready(function() {
        $('.mdb-select').materialSelect();
        });
        
      

Material Select with translations MDB Pro component



        <div class="col-md-3 my-3">
          <select id="lang" class="mdb-select md-form" multiple searchable="Szukaj tutaj..">
            <option value="" disabled selected>Wybierz kraje</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>

        <div class="col-md-3 my-3">
          <select id="lang1" class="mdb-select md-form" multiple searchable="Suche hier..">
            <option value="" disabled selected>Wähle dein Land</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>

        <div class="col-md-3 my-3">
          <select id="lang2" class="mdb-select md-form" multiple searchable="..ابحث هنا">
            <option value="" disabled selected>اختر بلدك</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>


        <div class="col-md-6 my-3">
          <select id="lang3" class="mdb-select md-form" multiple searchable="Cari di sini..">
            <option value="" disabled selected>Pilih negaramu</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>

        <div class="col-md-6 my-3">
          <select id="lang4" class="mdb-select md-form" multiple searchable="Cherche ici..">
            <option value="" disabled selected>Choisis ton pays</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>
      

        <script>
          $('#lang').materialSelect({
            labels: {
              selectAll: 'Wybierz wszystkie',
              optionsSelected: 'wybranych opcji',
              noSearchResults: 'Brak wyników'
            }
          });
          $('#lang1').materialSelect({
            labels: {
              selectAll: 'Alles auswählen',
              optionsSelected: 'Optionen ausgewählt',
              noSearchResults: 'keine Ergebnisse'
            }
          });
          $('#lang2').materialSelect({
            labels: {
              selectAll: 'حدد الكل',
              optionsSelected: 'خيارات محددة',
              noSearchResults: 'لا توجد نتائج'
            }
          });
          $('#lang3').materialSelect({
            labels: {
              selectAll: 'Pilih semua',
              optionsSelected: 'opsi dipilih',
              noSearchResults: 'tidak ada hasil'
            }
          });
          $('#lang4').materialSelect({
            labels: {
              selectAll: 'Sélectionner tout',
              optionsSelected: 'options sélectionnées',
              noSearchResults: 'Aucun résultat'
            }
          });
        </script>
      

Material Select with advanced translations MDB Pro component



        <div class="col-md-6 my-3">
          <select id="lang-pl" class="mdb-select md-form" multiple searchable="Szukaj..." selectAllLabel="Wybierz wszystkie" optionsSelectedLabel="opcji wybranych">
            <option value="" disabled selected>Wybierz kraj</option>
            <option value="1">Stany Zjednoczone</option>
            <option value="2">Niemcy</option>
            <option value="3">Francja</option>
            <option value="3">Polska</option>
            <option value="3">Japonia</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Zapisz</button>
        </div>

      

        $(document).ready(function() {
          $('.mdb-select').materialSelect();
        });
      

Multiselect with Bootstrap styles MDB Pro component



        <div class="col-md-6 my-3">
          <select id="sel-bs" class="mdb-select md-form" multiple searchable="Search for...">
            <option value="" disabled selected>Select all</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="3">Poland</option>
            <option value="3">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
        </div>

      

        $('#sel-bs').materialSelect({
          defaultMaterialInput: true
        });
      

Multiselect validation MDB Pro component



        <form class="needs-validation" novalidate>
          <select class="mdb-select validate md-form" multiple searchable="Search here..">
            <option value="" disabled selected>Choose your country</option>
            <option value="1">USA</option>
            <option value="2">Germany</option>
            <option value="3">France</option>
            <option value="4">Poland</option>
            <option value="5">Japan</option>
          </select>
          <button class="btn btn-default btn-sm">Submit</button>
        </form>

      

        $(document).ready(function() {
          $('.mdb-select.validate').materialSelect({
            validate: true,
            labels: {
              validFeedback: 'Correct choice',
              invalidFeedback: 'Wrong choice'
            }
          });
          function validateSelect(e) {
            e.preventDefault();
            $('.needs-validation').addClass('was-validated');
            if ($('.needs-validation select').val() == '') {
              $('.needs-validation').find('.valid-feedback').hide();
              $('.needs-validation').find('.invalid-feedback').show();
              $('.needs-validation').find('.select-dropdown').val('').prop('placeholder', 'No countries selected')
            } else {
              $('.needs-validation').find('.valid-feedback').show();
              $('.needs-validation').find('.invalid-feedback').hide();
            }
          }
          $('.needs-validation select').on('change', e => validateSelect(e))
          $('.needs-validation').on('submit', e => validateSelect(e))
        });
      

Multiselect options and attributes MDB Pro component

The options are the same as in the Single Select, described here.

Edit these docs Rate these docs

Getting started: download & setup


Download

All of the components and features are a part of the MDBootstrap package.

MDBootstrap (Material Design for Bootstrap) is an MIT Licensed framework - free for personal & commercial use.

It combines the esthetic of Material Design and the functionalities of the newest Bootstrap.

Click on the button below to visit the Getting Started Page, where you can download the latest MDBootstrap package.

MDBootstrap Download MDBootstrap About

MDB Pro

Using components and features labeled as MDB Pro component requires the MDB Pro package - a powerful UI Kit containing over 5,000 components, dozens of plugins and much more cool features.

Click the button below to learn more about the MDBootstrap Pro package.

MDBootstrap Pro

Tutorials

If you need any additional help, use our "5 min Quick Start" guide or start full Bootstrap tutorial.

5 min Quick Start Full Bootstrap Tutorial

Compilation & Customization

To reduce the weight of MDBootstrap package even more, you can compile your own, custom package containing only those components and features that you need.

If you need additional help with compiling your custom package, please use our Compilation & Customization tutorial.

Compilation & Customization tutorial

Map of dependencies of SCSS files in MDBootstrap:


    Legend:

    '-->' means 'required'

    All free and pro files require files from 'core' catalog

    'none' means 'this component doesn't require anything except core files'

    A file wrapped by `< >` means that this file make the base component prettier but it isn't necessary for the proper working

    All PRO components require 'pro/_variables.scss' file

    scss/
    |
    |-- core/
    |   |
    |   |-- bootstrap/
    |   |	|-- _functions.scss
    |   |	|-- _variables.scss
    |   |
    |   |-- _colors.scss
    |   |-- _global.scss
    |   |-- _helpers.scss
    |   |-- _masks.scss
    |   |-- _mixins.scss
    |   |-- _typography.scss
    |   |-- _variables.scss
    |   |-- _waves.scss
    |
    |-- free/
    |   |-- _animations-basic.scss --> none
    |   |-- _animations-extended.scss --> _animations-basic.scss
    |   |-- _buttons.scss --> none
    |   |-- _cards.scss --> none <_buttons.scss>
    |   |-- _dropdowns.scss --> none <_buttons.scss>
    |   |-- _input-group.scss --> _forms.scss, _buttons.scss, _dropdowns.scss
    |   |-- _navbars.scss --> none <_buttons.scss, _forms.scss, _input-group.scss>
    |   |-- _pagination.scss --> none
    |   |-- _badges.scss --> none
    |   |-- _modals.scss --> _buttons.scss, _forms.scss (PRO --> _tabs.scss)
    |   |-- _carousels.scss --> <_buttons.scss>
    |   |-- _forms.scss --> none
    |   |-- _msc.scss --> none <_buttons.scss, _forms.scss, _cards.scss>
    |   |-- _footers.scss none <_buttons.scss> (PRO: )
    |   |-- _list-group.scss --> none
    |   |-- _tables.scss --> none (PRO: _material-select.scss, pro/_forms.scss, _checkbox.scss, pro/_buttons.scss, pro/_cards.scss, _pagination.scss, pro/_msc.scss)
    |   |-- _depreciated.scss
    |
    |-- pro/
    |   |
    |   |-- picker/
    |   |   |-- _default.scss --> none
    |   |   |-- _default-time.scss --> _default.scss, free/_forms.scss, free/_buttons.scss, pro/_buttons.scss, free/_cards.scss
    |   |   |-- _default-date.scss --> _default.scss, free/_forms.scss
    |   |
    |   |-- sections/
    |   |   |-- _templates.scss --> _sidenav.scss
    |   |   |-- _social.scss --> free/_cards.scss, free/ _forms.scss, free/_buttons.scss, pro/_buttons.scss,
    |   |   |-- _team.scss --> free/_buttons.scss, pro/_buttons.scss, free/_cards.scss, pro/_cards.scss
    |   |   |-- _testimonials.scss --> free/_carousels.scss, pro/_carousels.scss, free/_buttons.scss, pro/_buttons.scss
    |   |   |-- _magazine.scss --> _badges.scss
    |   |   |-- _pricing.scss --> free/_buttons.scss, pro/_buttons.scss
    |   |   |-- _contacts.scss --> free/_forms.scss, pro/_forms.scss, free/_buttons.scss, pro/_buttons.scss
    |   |
    |   |-- _variables.scss
    |   |-- _buttons.scss --> free/_buttons.scss, pro/_msc.scss, _checkbox.scss, _radio.scss
    |   |-- _social-buttons.scss --> free/_buttons.scss, pro/_buttons.scss
    |   |-- _tabs.scss --> _cards.scss
    |   |-- _cards.scss --> free/_cards.scss <_buttons.scss, _social-buttons.scss>
    |   |-- _dropdowns.scss --> free/_dropdowns.scss, free/_buttons.scss
    |   |-- _navbars.scss --> free/_navbars.scss  (PRO: )
    |   |-- _scrollspy.scss --> none
    |   |-- _lightbox.scss --> none
    |   |-- _chips.scss --> none
    |   |-- _msc.scss --> none
    |   |-- _forms.scss --> none
    |   |-- _radio.scss --> none
    |   |-- _checkbox.scss --> none
    |   |-- _material-select.scss --> none
    |   |-- _switch.scss --> none
    |   |-- _file-input.scss --> free/_forms.scss, free/_buttons.scss
    |   |-- _range.scss --> none
    |   |-- _input-group.scss --> free/_input-group.scss and the same what free input group, _checkbox.scss, _radio.scss
    |   |-- _autocomplete.scss --> free/_forms.scss
    |   |-- _accordion.scss --> pro/_animations.scss, free/_cards.scss
    |   |-- _parallax.scss --> none
    |   |-- _sidenav.scss --> free/_forms.scss, pro/_animations.scss, sections/_templates.scss
    |   |-- _ecommerce.scss --> free/_cards.scss, pro/_cards.scss, free/_buttons.scss, pro/_buttons.scss, pro/_msc.scss
    |   |-- _carousels.scss --> free/_carousels.scss, free/_cards.scss, free/_buttons.scss 
    |   |-- _steppers.scss --> free/_buttons.scss
    |   |-- _blog.scss --> none
    |   |-- _toasts.scss --> free/_buttons.scss
    |   |-- _animations.scss --> none
    |   |-- _charts.scss --> none
    |   |-- _progress.scss --> none
    |   |-- _scrollbar.scss --> none
    |   |-- _skins.scss --> none
    |   |-- _depreciated.scss
    |
    `-- _custom-skin.scss
    `-- _custom-styles.scss
    `-- _custom-variables.scss
    `-- mdb.scss

  

Map of dependencies of JavaScript modules in MDBootstrap:


    Legend:

    '-->' means 'required'

    All files require jQuery and bootstrap.js

    js/
    ├── dist/
    │   ├── buttons.js
    │   ├── cards.js
    │   ├── character-counter.js
    │   ├── chips.js
    │   ├── collapsible.js --> vendor/velocity.js
    │   ├── dropdown.js --> Popper.js, jquery.easing.js
    │   ├── file-input.js
    │   ├── forms-free.js
    │   ├── material-select.js --> dropdown.js
    │   ├── mdb-autocomplete.js
    │   ├── preloading.js
    │   ├── range-input.js --> vendor/velocity.js
    │   ├── scrolling-navbar.js
    │   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
    │   └── smooth-scroll.js
    ├── _intro-mdb-pro.js
    ├── modules.js
    ├── src/
    │   ├── buttons.js
    │   ├── cards.js
    │   ├── character-counter.js
    │   ├── chips.js
    │   ├── collapsible.js --> vendor/velocity.js
    │   ├── dropdown.js --> Popper.js, jquery.easing.js
    │   ├── file-input.js
    │   ├── forms-free.js
    │   ├── material-select.js --> dropdown.js
    │   ├── mdb-autocomplete.js
    │   ├── preloading.js
    │   ├── range-input.js --> vendor/velocity.js
    │   ├── scrolling-navbar.js
    │   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
    │   └── smooth-scroll.js
    └── vendor/
        ├── addons/
        │   ├── datatables.js
        │   └── datatables.min.js
        ├── chart.js
        ├── enhanced-modals.js
        ├── hammer.js
        ├── jarallax.js
        ├── jarallax-video.js --> vendor/jarallax.js
        ├── jquery.easing.js
        ├── jquery.easypiechart.js
        ├── jquery.hammer.js --> vendor/hammer.js
        ├── jquery.sticky.js
        ├── lightbox.js
        ├── picker-date.js --> vendor/picker.js
        ├── picker.js
        ├── picker-time.js --> vendor/picker.js
        ├── scrollbar.js
        ├── scrolling-navbar.js
        ├── toastr.js
        ├── velocity.js
        ├── waves.js
        └── wow.js
  

Integrations with Angular, React or Vue

Apart from the standard Bootstrap integration (using jQuery), MDBootstrap also integrates with Angular, React and Vue.

About MDB Angular About MDB React About MDB Vue

Exclusive resources

MDBootstrap is a platform for web creators and MDB packages are only a part of it.

If you sign up you'll gain free access to other useful tools & resources including:

  • Community developed components & design projects
  • Technical support & community forum
  • CLI interface & free project hosting
  • Helpful articles & news agregators

...and much more!

Don't hesitate and sign up now!

Sign up now