jquerycompatibilityjquery-select2jquery-select2-4jquery-select2-3

maximumSelectionSize isn't working in Select2


I have a multivalue select, and I want to set the restriction on number of selected items using the select2 library.

Documentation says that I should set maximumSelectionSize during the object initialization. Unfortunately, the following code doesn't work:

$(document).ready(function () {
    $("#select_demo").select2({
        maximumSelectionSize: 3
    });
});

My html selectbox:

<div class="form-group">
    <select id="select_demo" multiple="multiple" class="form-control select2 select2-container-multi">
        <optgroup label="One">
            <option>one</option>
            <option>two</option>
            <option>three</option>
            <option>four</option>
        </optgroup>
        <optgroup label="Two">
            <option>one2</option>
            <option>two2</option>
        </optgroup>
        <optgroup label="Three">
            <option>one3</option>
            <option>two3</option>
            <option>three3</option>
            <option>four3</option>
        </optgroup>
    </select>
</div>

http://jsfiddle.net/x4oqL1jr/2/

What is wrong with this chunk of code?


Solution

  • Since the version 4.0 of select2 they have replaced maximumSelectionSize with maximumSelectionLength.

    So, just change the js code in the following way:

    $(document).ready(function () {
        $("#select_demo").select2({
            maximumSelectionLength: 3
        });
    });
    

    You can find the latest documentation following this link: https://select2.github.io/examples.html#multiple-max

    Everything works like a charm:

    http://jsfiddle.net/4tk4hymn/1/

    UPDATE: You can also add a data-maximum-selection-length="3" attribute as pointed out in the comments. For example, see http://jsfiddle.net/1b8y9uzh/.