2010-02-04 5 views
0

하나의 JQuery 자동 완성 드롭 다운에 데이터를 표시하려고합니다. 분명히JQuery 이상한 포커스 동작 자동 완성

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

내가 더 필요 이상으로 GET을 만들 싶지 않아, 그래서 (모든 키를 누를 때) 자바 타이머와 컨트롤의 비트 :이 정보는 하나의 동적 ASPX에서 검색

if (timerActive) { 
    stopTimer(); 
} 

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

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

이 것은 일반적으로 작동하지만, 나는 화살표와 AvPag 몇 가지 특별한 행동을 본 적이 :

그리고 얻기 항목 않습니다. 드롭 다운의 레코드가 표시되면 AvPag를 누르면 구성 요소가 올바른 레코드를 선택하지만 2 초 후에 이전 레코드로 돌아갑니다.

나의 첫 번째 이론은 .autocomplete가 포커스를 다시 설정한다는 것이었지만, 이것이 올바르지 않은 것으로 나타났습니다. 버그 (BUG LINK)라고 생각했지만 작동하지 않습니다.

제발 누군가가 도울 수 있다면 ... 고마워!

+0

당신은 자동 완성에 옵션이 있음을 알고 있습니다. 키 스트로크에 기반하여 가져 오기를 지연 하시겠습니까? , 지연 : 900 –

답변

0

타이머없이 원하는대로 작동합니까?

onkeypress 이벤트가 실행되고 사용자가 원하는 것을 선택했다면 타이머 이벤트가 발생하여 항목을 다시 설정합니다.

변수

var selected = false; 

를 추가하고 자동 완성에 선택한 이벤트을 첨부 는 = 선택이 true로 설정

는이 같은 당신의 obtainItem보기 :

function obtainItems() 
{ 
    if (!selected) 
    { 
     $("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>') 
     stopTimer(); 
    } 
}