Member 14872744 Ответов: 0

Twitter typeahead не показывает совпадающие записи с помощью jquery


Я пытаюсь использовать twitter typeahead с jquery, чтобы получить соответствующие записи из базы данных, но он не появляется.. Я попробовал использовать следующий код... Может кто-нибудь помочь мне с кодом ???? Я также ссылался на следующую ссылку..но все равно она не появляется

Twitter typeahead не работает на ASP.NET[^]

Что я уже пробовал:

$(document).ready(function () {
           console.log("Debugging started");
       });

           $("#customer").mouseleave(function () {
               debugger;
                   var searchlist = new Bloodhound({
                       datumTokenizer: function (searchlist) {
                           return Bloodhound.tokenizers.whitespace("customerName");
                       },
                       queryTokenizer: Bloodhound.tokenizers.whitespace,
                       remote: {
                           url: '/api/Customers?query=%QUERY',
                           wildcard: '%QUERY',
                           filter: function (response) {
                               return response.customerName;
                           }
                       }
                   });

                    //Initialize the searchlist
                   searchlist.initialize();

                   $('#customer').typeahead({
                       hint: true,
                       highlight: true,
                       minLength: 3
                   },
                       {
                           name: 'searchlist',
                           displayKey: function (suggestions) { return suggestions.keyword },
                           source: searchlist.ttAdapter(),
                           limit: 10
                       });
                         
           });

F-ES Sitecore

Где javascript находится в контексте страницы, имеет значение. Ваш код $("customer") не работает в событии dom ready, он работает везде, где он находится в html-документе, поэтому может быть, что элемент "customer" еще не существует, когда запускается js, поэтому никакие события не привязаны. Срабатывает ли оператор "отладчик", когда вы покидаете элемент customer? И инициализация опережающего типа в этом случае, похоже, не имеет большого смысла.

Member 14872744

Большое спасибо за ваш ответ...
Я попробовал это сделать, написав весь код на странице load event ie $(document).ready().. он по-прежнему работает так же, как и в приведенном выше коде ie... Я получаю все имена клиентов из базы данных вместо совпадающих.. Мое требование состоит в том, чтобы получить только соответствующие, а не полный список клиентов.

Member 14872744

Мой модифицированный код



$(документ).готово(функция () {
var customers = new Bloodhound({
датумтокенизатор: Бладхаунд.tokenizers.obj.whitespace('customerName'),
queryTokenizer: Bloodhound.tokenizers.пробел,
удаленный: {
url: '/api/Customers?query=%QUERY',
подстановочный знак: '%QUERY'
},
достаточно: 25
});

$('#заказчик).машинописный(
{
минимальная длина: 2,
изюминка: правда
}, {
лимит: 25,
имя: "клиенты",
дисплей: 'customerName',
источник: клиенты
});

});

0 Ответов