2010-02-04 2 views
0

Я пытаюсь показать данные в один JQuery Autocomplete Dropdown. Информация извлекается из одного динамического ASPX:JQuery Autocomplete странное поведение фокуса

$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>') 

Очевидно, что я не хочу сделать больше GETs, чем это необходимо, так что я немного управления с таймером Java (на каждом нажатии клавиши):

if (timerActive) { 
    stopTimer(); 
} 

timer = setTimeout('obtainItems()', 800); 
timerActive = true; 

и ПОЛУЧИТЬ элементы делают:

$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>') 
stopTimer(); 

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

Моя первая теория заключалась в том, что .autocomplete сбрасывал фокус, но я заметил, что это неверно. Я думал, что это ошибка (BUG LINK), но она не работает.

Пожалуйста, если кто-то может помочь ... большое спасибо!

+0

вы знаете, что есть опция на автозаполнении отложить получение на основе ключевых штрихов? , задержка: 900 –

ответ

0

Работает ли он без таймера?

Я предполагаю, что ваше событие onkeypress запущено, пользователь выбирает то, что он хочет, затем срабатывает событие таймера, которое сбрасывает элементы.

добавить переменную

var selected = false; 

и прикрепить выбранное событие к вашему автозаполнения и набор выбран = истинный

ваш obtainItem выглядеть следующим образом:

function obtainItems() 
{ 
    if (!selected) 
    { 
     $("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>') 
     stopTimer(); 
    } 
} 
Смежные вопросы