2009-12-24 6 views
0

jquery 자동 완성을 사용하여 사용자 목록을 채우고 있습니다. document.ready에서 autocomplete json을 호출하여 사용자 목록을 가져옵니다.jquery 자동 완성 문제

자동 완성 json 호출이 완료되기 전에 입력란에 유효한 사용자 이름 (또는 기타)을 입력하면 autocomplete 옵션이 표시되지 않습니다 (자동 완성이 유효한 문자에도 작동하지 않음).

그리고 난 내가 자동 완성 JSON 호출이 완료되기 전에 입력 할 때

은 무엇 자동 완성과 문제가있을 수 있습니다 .. 그 작업, 노력에 다시 텍스트 상자 외부를 클릭 언제?

자동 완성에 대한 코드는 다음과 같습니다

당신이 텍스트 상자에 입력 한 다음 JSON 호출이 완료가, 그리고 자동 완성을 설정 한 후 ..

EDIT 경우

$.getJSON("/User/GetAllUsers/?t=" + new Date(), {}, 
     function(data) { 
      if (data != null) { 
       $("#UserName").autocomplete(data, { mustMatch: false, matchContains: 4, max: 50, 
        formatItem: function(row) { 
         return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
        }, 
        formatResult: function(row) { 
         return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
        } 
       }); 
      } 
     }); 
+0

몇 가지 코드를 게시 할 수 있습니까? 아마도 coument.ready 어디에서 자동 완성을 바인딩 할 수 있습니까? – Pharabus

답변

0

: 당신을 : 내가 말한 것을 잊지 search 메서드를 사용하여 검색을 수동으로 트리거 할 수 있습니다.

대신 텍스트 상자에서 변경 이벤트를 실행 하시겠습니까? http://docs.jquery.com/Events/trigger

+0

트리거가 작동하지 않습니다. 다른 컨트롤에 초점을 맞추고 사용자 이름 컨트롤로 돌아 가지 않으면 값을 표시하지 않습니다. – Prasad

+0

그런 다음 blur() 및 focus()를 할 수 있습니까? –

0

자동 완성 부분을 설정하는 콜백 메소드는 getJSON 호출이 완료된 후에 만 ​​실행됩니다.

두 가지 중 하나를 수행 할 수 있습니다. 1. json 호출이 완료 될 때까지 UI/텍스트 상자를 차단하는 차단 메커니즘을 작성하십시오. 본질적으로, 자동 완성 제휴가 완료되었을 때. 그런 다음 필요한 검색어를 포함 할 queryParameter (Q)를 사용하여 서버 측에서 사용자를 필터링해야

$("#UserName").autocomplete("/User/GetAllUsers/?t=" + new Date(), { mustMatch: false, matchContains: 4, max: 50, 
       formatItem: function(row) { 
        return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
       }, 
       formatResult: function(row) { 
        return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
       } 
      }); 

: 2. 자동 완성 플러그인은 직접 GetAllUsers 방법을 조회 할 수 있습니다.