Почему автозаполнение jQuery не выполняется?
-
03-07-2019 - |
Вопрос
У меня есть очень интересный случай, когда поле автозаполнения jQuery не отвечает при первом вводе в текстовое поле, но когда я выделяю вкладку за пределами текстового поля, а затем возвращаю курсор обратно в текстовое поле во второй раз, оно начинает отвечать, и результаты отображаются по мере того, как я начинаю вводить текст.
Когда я использую firebug, я действительно вижу, что функция AJAX в моем приложении была вызвана, и результаты возвращаются в html templete, но результат не отображается, что может быть причиной такого поведения?
Код привязки моей функции:
$(function()
{
$(document).ready(function(){
$("#tags1").bind("keyup",autoFill)
});
});
Моя функция автозаполнения
function autoFill(){
$("#tags1").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
}
Мое Поле текстового поля:
<input type="text" style="width: 400px" id="tags1" name="tags1" value="">
Решение
Почему вы вызываете автозаполнение() при вводе ключа?Я думаю, что это может быть причиной ваших проблем.Я бы попробовал просто вызвать функцию автозаполнения () прямо из события document ready.
$(document).ready(function(){
$("#tags1").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
});
Другие советы
Если вы используете то же автозаполнение, которое я использовал сегодня (на другом компьютере, извините - не могу узнать, какая была точная версия) - тогда вам не нужно привязывать при вводе ключа - просто привязывайте один раз при запуске -
<script>
$('#tags1').autocomplete(....);
</script>
Функция автозаполнения обрабатывает все нажатия клавиш / изменения фокусировки и т.д.