Плагин ajaxChosen не будет работать

Я весь день возился с ajaxChosen, потому что мне нравится Chosen, но мои наборы значений опций становятся слишком большими. Я также экспериментировал с select2, но это чертовски медленно.

http://harvesthq.github.io/chosen/ https://github.com/meltingice/ajax-chosen

Итак, у меня самая новая версия selected (1.1.0) и последняя версия ajaxChosen. Я инициализирую ajaxChosen следующим образом:

$("#add_people").ajaxChosen({
    type: 'GET',
    minTermLength: 3,
    afterTypeDelay: 300,
    dataType: 'json',
    url: 'http://cmcrm.chocolata.be/content/people.php?action=list_options'
  }, function (data) {
    var results = [];
    $.each(data, function (i, val) {
    results.push({ value: val.value, text: val.text });
  });
  return results;
});

Мой скрипт имеет доступ к этому URL-адресу, и XSS-предотвращение не происходит, поскольку мой скрипт находится в том же домене, что и удаленный URL-адрес.

Формат моего JSON следующий:

[{"value":3,"text":"Valerietje Mortelmans (Actief)"},{"value":9,"text":"Olivier Hopchet (Actief)"},{"value":13,"text":"Wieland Rits (Actief)"},{"value":14,"text":"Melissa Seiffert van der Merwede (Actief)"},{"value":15,"text":"Guillaume de Valensart (Actief)"},{"value":18,"text":"Xavier Cloet (Actief)"},{"value":19,"text":"Brent Lammens (Actief)"},{"value":21,"text":"Coralie Libert (Actief)"},{"value":22,"text":"Laetitia Theus (Actief)"},{"value":23,"text":"Evelien Mollet (Actief)"},{"value":24,"text":"Feya Smets (Actief)"},{"value":25,"text":"Michelle Warneke (Actief)"},{"value":26,"text":"Carolyn Spaenjaers (Actief)"},{"value":27,"text":"Evelien Raes (Actief)"},{"value":28,"text":"Ange Luyten (Actief)"}]

Я вижу, что выбранное было инициализировано, но когда я начинаю печатать, я сразу получаю «Нет результатов поиска для KEYWORD». В моей консоли ошибок нет.

Так в чем проблема? Плагин просто не работает? Или я что-то не так делаю?


Я создал jsfiddle здесь http://jsfiddle.net/4796y/

Может ли кто-нибудь помочь, чтобы я не тратил на это больше времени? :-) Хотел бы использовать это. Спасибо!


person chocolata    schedule 07.03.2014    source источник


Ответы (2)


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

Похоже, что Майкл Перрин разветвил его для совместимости с версиями 1.X selected: https://github.com/michaelperrin/ajax-chosen/

Вилка Майкла работает, но все еще немного глючит. В примере с Майклом моя основная проблема заключалась в том, что некоторые набранные буквы отбрасывались после того, как был найден соответствующий результат. Неожиданное поведение!

Возможно, было бы лучше дать Select2 еще один шанс, так как его пользователи утверждают, что они могут обойти задержку плагин при работе с большими списками.

Этот плагин активно поддерживается и широко используется. Может быть, было бы лучше отложить яйца в эту корзину ;-)

Проблемы с медлительностью Select2 можно найти здесь.

person chocolata    schedule 09.03.2014
comment
Я только что протестировал версию Майкла Перрина, и она до сих пор отлично работает. - person victorf; 10.07.2015
comment
Я предполагаю, что исходная версия все еще ищет классы Chosen, такие как .chzn-container или .chzn-results, но Chosen на самом деле использует .chosen-container и так далее. Версия Майкла обновила эти ссылочные классы. - person victorf; 10.07.2015
comment
для тех из вас, кто ищет автозаполнение, токен-ввод довольно крут: loopj.com/jquery-tokeninput - person Apolo; 04.08.2015

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

Добавьте это к выбранным параметрам: disable_search_threshold: -1

ваш код должен выглядеть так:

$("selector").ajaxChosen({
    // AJAX & AjaxChosen OPTIONS
    type: 'GET',
    url: "/My/url.php",
    dataType: 'json'
},
function (data) {
    // CALLBACK
    var results = [];
    // [...]
    return results;
}, 
{
    // CHOSEN OPTIONS
    disable_search_threshold: -1
});
person Apolo    schedule 04.08.2015