jQuery AJAX Typeahead отключить фильтр автозаполнения - PullRequest
0 голосов
/ 01 сентября 2018

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

$('.to').typeahead({
        minLength : 3,
        hint: true,
        dropdownFilter: "All",
        source: function (query, result) {
            $.ajax({
                url: "citySearch.php",
                data: 'query=' + query,            
                dataType: "json",
                type: "POST",
                success: function(data){
                    result($.map(data, function (item, i) {
                        if (item.TypeCode == 'C') {
                            return '<i class="fa fa-map-marker" aria-hidden="true"></i> ' + item.CityName + ', ' + item.CountryCode + ' (' + item.CityCode + ') ' + i;
                        } else if (item.TypeCode == 'A') {
                            return '<i class="fa fa-plane" aria-hidden="true" style="padding-left: 5px;"></i> ' + item.AirPortName + ' (' + item.AirPortCode + ') ' + i;
                        };
                    }));
                }
            });
        },
        afterSelect: function (item) {
            var buffer = item.replace('<i class="fa fa-map-marker" aria-hidden="true"></i> ', '');
            buffer = buffer.replace('<i class="fa fa-plane" aria-hidden="true" style="padding-left: 5px;"></i> ', '');
            $('#to').val(buffer);
            setTimeout(function(){
                $('.depart-field').select();
                $(".depart-field").datepicker('show');
            }, 16);
        }
    });

Если я заменю функцию поиска следующим, она отобразит все результаты, не пропуская ни одного из них ... есть ли какой-то запрос, который я пропускаю?

success: function(data){
    result($.map(data, function (item, i) {
        return item.CityName + item.AirPortName;
    }));
}
...