2012-06-20 5 views
0

원격 데이터 소스에서 자동 완성을 가져오고 있습니다. 그것은 JSON 반환하지만 자동 완성 상자를 채우지 않습니다.Ajax 자동 완성 문제

$("#patientName").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: "http://localhost:8080/cs/accountTypeAhead", 
      dataType: "json", 
      type: 'POST', 
      data: { "patientName": $("#patientName").val(), 
            "requestID": (new Date()).getTime()}, 
      success: function(data) { 
       var searchInfo = new Array(); 

       for(var key in data) 
       { 

        if(typeof data[key] === "object") { 
         for(var i = 0; i < data[key].length; i++) 
         { 
          searchInfo.push(data[key]); 

         }//end for loop 
        }//end if 


        else if(key == "requestID") 
        { 
         if (data.requestID < $("#requestID").val()) 
         { return false;} 

         else 
         { 
          $("#requestID").val(data.requestID); 
         } 
        }//end if/else 


       }//end for loop 


       return searchInfo; 
      } 
     }); 
    }, 
    minLength: 1, 
}); 

내 콘솔에서 출력되는 내용이 예상 한 것입니다. 배열을 반환 할 때 무언가를 가지고 있다고 생각합니다.

답변

1

response(searchInfo); 
+0

입니까? 정확한 값을 반환하고 있습니다. 그런 다음 [JQuery UI] (http://jqueryui.com/demos/autocomplete/remote-jsonp.html)의 예제를 보면 비슷합니다. –

+0

@David Nuckols : 편집 내 대답 –

0

여기에 원격 JSON을 사용하여 자동 완성을위한 "성공"핸들러 내 작업 버전은에 의해

return searchInfo; 

변경해보십시오.

success: function (data) { 
          response($.map(data, function (item){ 
return { label: item.FirstName, value: item.FirstName, id:item.MemberId } 

})) 
         } 

희망이 있습니다.

또한이 데모를보십시오. 도움을 http://jqueryui.com/demos/autocomplete/remote-jsonp.html

+0

도움을 주셔서 감사합니다. 궁극적으로 해결책은 –

0

덕분에이 솔루션은 어떻게 값을받을 수 있나요 그리고

success: function (data) { 
     response($.map(data.results, function (item){ 
     return { label: item, value: item }; 
    })); 
}