2015-02-02 3 views
-1

jquery UI 자동 완성을 사용하려고하지만 javascript 오류가 발생하지 않아도 같은 결과가 표시되지 않습니다.Jquery UI 자동 완성 (사용자 지정 목록 사용)이 작동하지 않습니다.

다음
{"d":"[{\"label\":\"XYZ\",\"desc\":\"desc 1\",\"value\":\"XYZ\",\"ID\":595,\"icon\":\"UM-892983\"},{\"label\":\"ABC .\",\"desc\":\"desc 2\",\"value\":\"ABC .\",\"ID\":1681,\"icon\":\"UM-432944\"}]"} 

자동 완성을 처리하는 내 JS 기능입니다 :

$().ready(function(){ 
    $("#txtName").bind("keyup", function (e) { 
      // Ajax call returns the above json data 

      // On Ajax Success I call 
      onSucName(returnData.d); 
    }); 
}); 

function onSucName(result) { 
var varArrAdms = $.parseJSON(result); 
$("#txtName").autocomplete({ 
    source : varArrAdms, 
    select : function (event, ui) { 
     setNameValue(ui.item.icon) 
     $("#txtNo").val(ui.item.icon) 
     $("#btnSearch").click(); 
    }, 
    open : function() { 
     $(this).addClass('loadingTxtBox'); 
    }, 
    close : function() { 
     $(this).removeClass('loadingTxtBox'); 
    } 
}).data("ui-autocomplete")._renderItem = function (ul, item) { 
    return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.value + " <b> desc:" + item.desc + "</b> <i> No:" + item.icon + "</i></a>").appendTo(ul); 
}; 
} 

내가 잘못 여기

내 JSON 데이터입니까? 당신의 keyup에 자동 완성을 결합하는 이유는

답변

0

오히려 한 번에 바인딩해야합니다 .... 예를

$('#txtName').autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: 'url', 
        data: {}, //pass data here 
        dataType: 'json', 
        type: 'post', 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { 
           label: item.icon 
          } 
         })); 
        } 
       }) 
      }, 
      select: function (event, ui) { 
       var itemval = ui.item.label; 
       // here you can access selected result `itemval` 
       return false; 
      }, 
      minLength: 1 

     }); 
0

을보십시오. 또한 리 바인드하기 전에 기존 인스턴스를 제거해야합니다.