Как изменить ключ строки запроса по умолчанию для автозаполнения jQuery?(срок, который я хочу) - PullRequest
25 голосов
/ 28 июня 2010

плагин автозаполнения jQuery отправил запрос вот так

mysite.com/suggestion?term=Sadegh

есть ли способ заменить термин ключ строки запроса на другой? я не могу найти вариант, который обеспечит это для меня;)

Ответы [ 3 ]

58 голосов
/ 07 декабря 2010

Вышеприведенное неверно для текущей версии (1.8.6).Не уверен, что это когда-либо было ...

$(...).autocomplete({
  source: function(request, response) {
    $.getJSON("url", { foo: request.term }, response);
  }
});

foo: имя нового ключа param ..

17 голосов
/ 28 июня 2010

Я предполагаю, что вы используете jQuery UI Автозаполнение

Вам необходимо предоставить обратный вызов в качестве источника, например:

$(...).autocomplete({
    source: function(term, callback) {
        $.getJSON("url", { foo: term }, callback);
    }
});
1 голос
/ 21 марта 2013

На самом деле я выкопал код, который использует плагин.Адаптация его для изменения термина будет выглядеть примерно так:

$('#form').autocomplete({
    source: (function() {
        var xhr;
        return function(request, response) {
            if (xhr) {
                xhr.abort();
            }
            xhr = $.ajax({
                url: 'mysite.com/suggestion',
                data: {
                    foo: request.term
                },
                dataType: 'json',
                success: function(data) {
                    response(data);
                },
                error: function() {
                    response([]);
                }
            });
        }
    })()
});

Я бы сказал, что это имеет два преимущества:

  1. Прервать отложенные запросы
  2. Вызвать ответс пустым набором в случае ошибки, что мне кажется более вежливым
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...