Select2 - не может выбрать результат ajax (не кликабелен) - PullRequest
0 голосов
/ 07 сентября 2018

Я использовал библиотеку select2 jquery, ниже код, который я сделал для выбора нескольких пользователей с помощью ajax. Я могу искать, и я получил результаты пользователей, но я не могу выбрать (это не кликабельно), пожалуйста, посмотрите, что я сделал не так.

HTML-код

<select id="userSearch" name="users[]" class="txt-theme form-control" style="width:200px" placeholder="Search users..."></select>

КОД JQUERY

$('#userSearch').hide();
$("#userSearch").select2({
  ajax: {
    url: "http://localhost:8000/api/users",
    dataType: 'json',
    delay: 250,
    data: function (params) {
      return {
        q: params.term, // search term
        name: params.term, // search term
        page: params.page
      };
    },
    processResults: function (data, page) {
      // parse the results into the format expected by Select2.
      // since we are using custom formatting functions we do not need to
      // alter the remote JSON data
      return {
        results: data.items
      };
    },
    cache: true
  },
  escapeMarkup: function (markup) { return markup; },
  multiple: true,
  allowClear: true,
  placeholder: 'Share file(s) with...',
  minimumInputLength: 3,
  templateResult: formatRepo,
  templateSelection: formatRepoSelection

});

function formatRepo(repo) {
  if (repo.loading) return repo.name;
  var markup = '<li value='+repo.user_id+'>'+repo.name+'</li>';
  return markup;
}

function formatRepoSelection (repo) {
  return repo.name || repo.name;
}

Спасибо за помощь:)

1 Ответ

0 голосов
/ 07 сентября 2018

Спасибо всем за попытку найти что-то для меня. Я получил правильный ответ, прибегая к помощи

Проблема в этой части

function formatRepo(repo) {
  if (repo.loading) return repo.name;
  var markup = '<li value='+repo.user_id+'>'+repo.name+'</li>';
  return markup;
}

Мне нужно изменить с repo.user_id на repo.id, поскольку для библиотеки select2 требуется id в качестве ключа, чтобы сделать выбор доступным.

Спасибо

...