Изменение параметра запроса для автозаполнения пользовательского интерфейса jQuery - PullRequest
17 голосов
/ 13 июля 2011

Я использую версию 1.8.13 автоматического завершения пользовательского интерфейса jQuery, и по умолчанию jQuery использует параметр запроса "? Term =" по умолчанию, в то время как мое приложение использует "? Q =" в строке, которую оно создает,Я мог бы изменить переменную, чтобы она была «term» на бэкэнде, но я бы просто сказал jQuery, что сервер пытается отправить.Есть ли способ изменить это?

Прямо сейчас у меня просто что-то вроде этого, и оно работает, если я изменяю переменную на «term» в бэкэнде, но, как я уже сказал, я хочу изменить его на «q», и я не могу найти какой-либоинформация онлайн о настройке параметра (который работает):

$( "#input-search").autocomplete({
   source: "/search/autocomplete/"
});

Ответы [ 2 ]

25 голосов
/ 13 июля 2011

Вы можете использовать форму обратного вызова source и самостоятельно обрабатывать все взаимодействия с сервером.Как то так:

$("#input-search").autocomplete({
    source: function(request, response) {
        $.get('/search/autocomplete', { q: request.term }, function(data) {
            response(data.split('\n'));
        });
    }
});
11 голосов
/ 19 июля 2011

Ответ выше - отличный простой пример, который помог мне получить этот результат в моем приложении, которое генерирует неупорядоченный список из данных ответов, которые отображают результаты автозаполнения:

$("#input-search").autocomplete({
   source: function(request, response) {
      $.ajax({
         url: "/search/autocomplete",
         dataType: "json",
         data: {
            q: request.term
         },
         success: function(data) {
            response(data);
         }
      });
   },
}).data("autocomplete")._renderItem = function(ul, item) {
    $(ul).attr('id', 'search-autocomplete');
       return $("<li class=\""+item.type+"\"></li>")
       .data( "item.autocomplete", item )
       .append("<a href=\""+item.url+"\">"+item.title+"</a>").appendTo(ul);
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...