Используйте начальный набор данных с Select2 и отправляйте поиск Ajax только тогда, когда пользователь вводит главы - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть поле select2.

   <%= f.select :key_pole_id,
      @span.decorate.key_poles_to_search,
      {:include_blank => true},
      class: 'key-pole-search' %>

Который я инициализирую следующим образом:

  $('.key-pole-search').select2({
    theme: "bootstrap",        
    ajax: {
      url: '/key_poles/search',
      dataType: 'json',
      delay: 250,      
    }
  });

Что работает, за исключением того, что установленные исходные значения никогда не отображаются.Когда пользователь щелкает в окне поиска Select2, ajax-запрос запускается с пустым поисковым термином, который заполняет список другими полюсами.

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

Как я могу контролировать отправку ajax-запроса?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Вы также можете расширять и адаптировать и использовать его для достижения того, что вам требуется, это более эффективно и позволит вам также загружать опции по умолчанию

https://gist.github.com/govorov/274a8aac5fb910472ff1d0022f32f53e

0 голосов
/ 05 февраля 2019
You can find an example of what you are looking for 
http://jsfiddle.net/tw57m8bx/1/

    function(options) {
        if (options.term) {
            $.ajax({
                type: 'post',
                url: '/echo/json/',
                dataType: 'json',
                data: {
                    json: JSON.stringify(AJAX_OPTIONS),
                    delay: 0.3
                }
...