select2 - динамически изменять конфигурацию - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь переопределить параметр конфигурации maximumSelectionLength в select2 динамически, если пользователь выбрал первый вариант, я пытался сделать это следующим образом ...

$(".some-div select").on("select2:open", function(e) {

    if(e.target.options[0].selected) {
        $(this).select2({
           maximumSelectionLength: 1
        });
    }

});

Но это всегда дает мне эту ошибку Uncaught TypeError: Cannot read property 'query' of null

Как я могу это сделать?

1 Ответ

1 голос
/ 02 февраля 2020

Существует встроенный способ получить индекс предметов evt.params.data.element.index, поэтому просто сделайте это:

$('#example').select2({
  maximumSelectionLength: 5
});

$("#example").on("select2:select", function(evt) {
  let index = evt.params.data.element.index; // get index 
  if (index === 0) {
    $('#example').select2({ //re-init
      maximumSelectionLength: 1
    });
  }
});

JSFiddle

Вы может вернуть значение по умолчанию maximumSelectionLength на else

...