автозаполнение jquery не заполняется, если введенный текст не входит в первый результат - PullRequest
0 голосов
/ 17 мая 2011

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

$(document).ready(function () {

});

function textChange() {

var callback = function (request, response) {
    var searchText = request.item;
    var searchField = $(".ddlist > option:selected").attr("value");
    $.ajax({
        type: "GET",
        dataType: "text",
        url: "SearchCallback.aspx?searchText=" + searchText + "&searchField=" + searchField,
        success: function (data) {
            var splitData = data.split(",");
            response(splitData);
        }
    });
}
$(".searchTextBox").autocomplete({
    source: callback,
    autoFill: true
})    
}

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

$(document).ready(function () {
$(".searchTextBox").autocomplete({
    source: callback,
    autoFill: true
});
});

var callback = function (request, response) {
var searchText = request.term;
var searchField = $(".ddlist > option:selected").attr("value");
$.ajax({
    type: "GET",
    dataType: "text",
    url: "SearchCallback.aspx?searchText=" + searchText + "&searchField=" + searchField,
    success: function (data) {
        var splitData = data.split(",");
        response(splitData);
    }
});
}

1 Ответ

0 голосов
/ 17 мая 2011

Вы должны использовать обратный вызов в качестве опции источника при инициализации автозаполнения (в вашем примере вы инициализируете автозаполнение при каждом нажатии клавиши):

var callback = function(request, response) {
    var searchText = request.item;
    // Set searchField somehow here
    $.ajax({  
         type: "GET",  
         dataType: "text",  
         url: "SearchCallback.aspx?searchText=" + searchText + "&searchField=" + searchField,
         success: function (data)
        {
            var splitData =  data.split(",");
            response(splitData);
        });      
    });
};

$( ".searchTextBox" ).autocomplete({
    source: callback,
    autoFill: true
});

Есть еще несколько примеров иболее подробное описание в документации .

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