2009-12-02 3 views
0

JQuery 자동 완성 플러그인 (http://docs.jquery.com/Plugins/Autocomplete)을 사용하고 있습니다. 내 페이지에서 by라는 입력 필드가 있습니다. 다음 코드가 작동합니다. (가) 입력에 의해 필드에 포커스를 얻을 때 지금JQuery 자동 완성이 get ajax 요청에서 작동하지 않습니다.

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

는 내가 제대로 "\ n을"에 의해 seprated 일부 문자열로 구성 데이터를 가져 오는 아약스 GET 요청을하고, 나는 함께 필드로 채우려 데이터를 받았습니다.하지만 아래에 표시된 것처럼 $ .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 
}); 
}); 
}); 

감사합니다.

답변

0

포커스 이벤트가 너무 늦어 자동 완성 값을로드 할 수 없습니다. 플러그인의 설명에서 :

자동 완성 된 필드에 포커스 을 제공하거나 그것으로 무언가를 입력하여 플러그인은 일치하는 항목을 검색하고 선택할 수있는 값 의 목록을 표시하기 시작합니다. 자를 더 입력하면 사용자가 목록을 필터링하여 더 잘 일치하도록 할 수 있습니다.

따라서 자동 완성은 포커스 이벤트가 트리거 될 때 작업을 수행합니다. 같은 이벤트에서 데이터를로드하려고합니다. 실제로 $ .get 메서드의 콜백은 비동기 적으로 호출되므로 이벤트가 호출 된 후에 데이터를로드합니다.

관련 문제