2012-01-16 2 views
1

자동 완성 jquery json을 사용하고 있지만 결과가 표시되지 않습니다. 다음 코드가 있습니다.Jquery 자동 완성이 데이터를 표시하지 않습니다.

$(function() { 

    $("#course").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "ajax.php", 
       dataType: "json", 
       data: { 
        style: "full", 
        maxRows: 20, 
        name_startsWith: request.term 
       }, 
       success: function(data) { 
        response($.map(data.geonames, function(item) { 
         return { 
          Id: item.Id + (item.FirstName ? ", " + item.LastName : "") + ", " + item.Email, 
          value: item.Id 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.label : 
       "Nothing selected, input was " + this.value); 
     }, 
     open: function() { 
      $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
     }, 
     close: function() { 
      $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
     } 
    }); 
}); 
</script> 

아약스 파일의 결과는이 형식입니다. 메뉴 항목에 대한 기본 렌더링 방식이기 때문에

{[label: 'text', value: 'val']...} 

:

_renderItem: function(ul, item) { 
    return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append($("<a></a>").text(item.label)) 
     .appendTo(ul); 
} 

당신이 원하는 경우

 [{"Email":"[email protected]","FirstName":"Sobha","Id":12333,"LastName":"Marati"}] 

답변

0

난 당신이 labelvalue 속성 JSON 개체를 구축 할 수 있다고 생각 다른 json 객체를 데이터 소스로 제공하려면 새로운 _renderItem 메소드를 제공하고 새 속성으로 직접 메뉴 항목을 만들어야합니다.

관련 문제