select2 search нажатие пробел выбирает элемент - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующее select2:

Теперь, как только я нажимаю пробел, он автоматически выбирает то, что я написал (что означает, что я не могу искать предметы с пробелом)

Вот мой JavaScript:

let term;
$('.js-data-example-ajax').select2({
  tags: true,
  multiple: false,
  tokenSeparators: [',', ' '],
  minimumInputLength: 2,
  minimumResultsForSearch: 10,
  ajax: {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Basic ' + btoa(environment.CVRTOKEN + ':' + '')
    },
    data: function(params) {
      term = params.term;
      this.queryParam = params.term;
      return params;
    }.bind(this),
    url: function() {
      return 'https://rest.cvrapi.dk/v1/dk/suggestions/company/' + $('.select2-search__field').val();
    },
    dataType: 'json',
    type: 'GET',
    processResults: function(data) {
      return {
        results: $.map(data, function(item) {
          return {
            text: item.life.name,
            id: item.vat
          };
        })
      };
    }
  }
});

И мой простой HTML:

<div class="form-group">
  <label>Firma</label>
  <select class="js-data-example-ajax form-control" style="height: 38px"></select>
</div>

Может кто-нибудь сказать мне, почему это происходит?

1 Ответ

0 голосов
/ 06 ноября 2018

Поскольку вы использовали:

tokenSeparators: [',', ' '],

Второй разделитель является пробелом. Поэтому, когда вы нажимаете Пробел , это рассматривается как токен. Вы должны изменить код, чтобы сказать, что вы не собираетесь разделять токены по пробелам.

tokenSeparators: [','],
...