Выбираемый ввод для поиска без инициализации JS - PullRequest
0 голосов
/ 09 февраля 2020

Мне нужен ввод выбора с возможностью поиска, который не нужно инициализировать в JS. Я использую Ajax на моем сайте, так что вы не можете знать, сколько селектов приходит и их идентификатор до вызова, поэтому что-то решение data-list будет в порядке, но пользователь не должен отправлять вводимый ввод, и это должно работать как выбор ввода, там, где есть идентификатор и определенная метка, отображается метка и отправляется идентификатор. Вы можете помочь мне? Единственные решения, которые я нашел, требовали инициализации JS, например:

$(".js-example-disabled").select2();

Но мы не знаем ни идентификатора до вызова AJAX, ни количества выбранных входов, которые нам нужно обработать.

1 Ответ

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

Вы можете создать свой собственный элемент select в обработчике success вашего вызова AJAX. Затем, когда вы добавили его в тело, инициализируйте его .select2(). Единственное, что здесь необходимо учитывать, - это размещение в документе.

function dynamicSelect2(url, placement) {
  $.ajax({
    url: url,
    success: function(data) {
      var $select = $('<select></select>');
      $.each(data, function(i, item) {
        $select.append(`<option value="${item}">${item}</option>`);
      });
      $select.appendTo(placement);
      $select.select2();
    })
  });
}

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

dynamicSelect2('yourdata', document.body);
...