Почему Select2 из Jquery показывает мне отключенные опции, когда я вставляю в поисковый запрос? - PullRequest
0 голосов
/ 07 марта 2019

Я использую Select2 4.0.6-rc.0 из Jquery, дело в том, что когда я копирую и вставляю значение для поиска, и есть только одна опция, эта опция отключается, и я могу выбрать ее или щелкнуть по ней.

На этом изображении я ожидаю только одного результата, поскольку SF190 принадлежит только одному пользователю. See this image for better understanding

Но если поиск дает более одного результата, все в порядке, как на этом изображении:

enter image description here

Это фрагмент кода, который я использую для инициализации Select2:

$('.js-data-example-ajax').select2({
        width: '100%',
        minimumInputLength: 1,
        tags: [],
        ajax: {
            url: '<URL of my action>',
            type: "POST",
            dataType: "json",
            delay: 1000,
            data: function (term) {
                return {
                    query: term.term
                };
            },
            processResults: function (data) {
                var res = data.map(function (item) {
                    return { id: item.Id, text: item.Id + ' ' + item.Name };
                });
                return {
                    results: res
                };
            }
        }
    });

Я действительно не знаю, что происходит, и я не могу найти никаких связанных решений.

1 Ответ

0 голосов
/ 07 марта 2019

Вот рабочая кодовая ручка на основе вашего примера (и другая кодовая ручка ):

$( ".select2" ).select2({        
  ajax: {
    url: "<url>",
    dataType: 'json',
    delay: 1000,
    //type: "POST", 
    tags: [],
    data: function (params) {
      return {
        q: params.term // search term
      };
    },
    processResults: function (data) {
                var res = data.map(function (item) {
                    return { id: item.id, text: item.text };
                });
                return {
                    results: res
                };
    },
  },
  minimumInputLength: 1
});

Единственное отличие состоит в том, что я удалил тип запроса - я уверен, что вы получаете данные здесь, а не публикуете их :) И если вы попытаетесь вернуть их обратно, фильтр перестанет работать, хотя и по-другому способ (он возвращает полный список независимо от того, что вы положили в фильтр), поэтому он может быть источником вашей проблемы здесь.

Есть еще одна вещь, которую следует учитывать - вы уверены, что нет другого кода, влияющего на ваш selectbox? Как то, что относится к .js-data-example-ajax или к любому <span> с одним ребенком (это часть раскрывающегося списка Select2) и т. Д.

...