Автозаполнение Jquery не работает из запроса get ajax - PullRequest
0 голосов
/ 02 декабря 2009

Я использую плагин автозаполнения JQuery (http://docs.jquery.com/Plugins/Autocomplete). У меня есть поле ввода, вызываемое на моей странице. Следующий код работает.

<script>
$(document).ready(function(){
    somedata = "Core Selectors Attributes Traversing Manipulation CSS Events Exciting Electronic Effects     Ajax Utilities".split(" ");
$("#by").autocomplete(somedata);
</script>

Теперь, когда поле ввода by получает фокус, я делаю ajax запрос на получение, который правильно выбирает данные, состоящие из нескольких строк, разделенных "\ n", и я хочу заполнить поле by полученными данными. вызов автозаполнения из $ .get не работает, как показано ниже. Есть ли способ это исправить?

$(document).ready(function(){
    somedata = "Core Selectors Attributes Traversing Manipulation CSS Events Exciting Electronic Effects     Ajax Utilities".split(" ");
var url = "<some url here>";
$("#by").focus(function(){
$.get(url,function(result) {
 $("#by").autocomplete(somedata); //Does not work
 $("#by").autocomplete(result.split("\n")); //Does not work
});
});
});

Спасибо.

1 Ответ

0 голосов
/ 02 декабря 2009

Событие фокусировки слишком поздно для загрузки значений автозаполнения. Из описания плагина:

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

Таким образом, автозаполнение выполняет свою работу, когда происходит событие фокуса. Вы пытаетесь загрузить в него данные из того же события. Фактически вы загружаете данные после вызова события, поскольку обратный вызов метода $ .get вызывается асинхронно.

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