Jquery自动完成显示未定义KeyId

时间:2018-03-26 15:19:48

标签: jquery jquery-ui-autocomplete

我有如下所示的代码。当我取消注释

区域时
    alert('Key ' + item.KeyID)

我确实得到了关键值。但是当我这样做时:

     select: function (event, ui)                        

并尝试获取它显示为未定义的KeyID。

$(document).ready(function () {
   $('#Company').autocomplete(
           {
               source: function (request, response) {
                   $.ajax({
                       url: '@Url.Action("AutoCompleteCompany", "Main")',
                       type: "POST",
                       dataType: "json",
                       data: { term: request.term },
                       success: function (data) {
                           response($.map(data, function (item) {
                               //alert('Key ' + item.KeyID);
                               //alert('Value ' + item.KeyValue);
                               return {label: item.KeyValue, val: item.KeyID };
                           }))
                       }
                   })
               },
               select: function (event, ui) {                       

                  alert(ui.item.KeyID);   // shows undefined                    


               }
           });
})

1 个答案:

答案 0 :(得分:0)

在数组中尝试以下加载源,然后加载自动完成对象

function loadData() {
  $.ajax({
    url: '@Url.Action("AutoCompleteCompany", "Main")',
    type: "POST",
    dataType: "json",
    data: { term: request.term },
    success: function (data) {
      jsdata = data.d;
      for (k = 0; k < jsdata.Object.length; k++) {
        arrayObject.push({ label: jsdata.Object[k].nombre, id: jsdata.Object[k].id, other: jsdata.Object[k].other });
      }
    }
  });
}

然后

var arrayObject= [];
$(document).ready(function () {
   $('#Company').autocomplete({
      source: arrayObject,
      select: function (event, ui) {  alert(ui.item.id); }                                     
   });
});