2015-07-01 69 views
1

我的代碼是:在jquery的自動完成函數中獲取錯誤「this.source不是函數。」

 $.ajax({ 
      type: "GET", 
      url: "https://url.com", 
      dataType: "json", 
      success: function (data) { 

       //$("#id").autocomplete({ source: response }); 
       $("#search").autocomplete(
      { 
       source: data, 
       select: function (event, ui) { 
        $("#search").val(ui.item.FirstName + "/" + ui.item.LastName); 
        return false; 
       } 
      }).data("autocomplete")._renderItem = function (ul, item) { 
       return $("<li></li>") 
        .data("item.autocomplete", item) 
        .append("<a><strong>" + item.FirstName + "</strong>/" + item.LastName + "</a>") 
        .appendTo(ul); 
      }; 
      } 
     }); 

在URL中的數據的形式爲 的{{數據:數組[22],ID:空,結果:對象}

我想使用的姓和陣列的名字這是形式

{FirstNam:R , LAstName:e , Id:9 },{FirstNam:R , LAstName:e , Id:9},... 

的我想這也

$.getJSON("https://url.com", function (json) { 
       console.log(json);  

      }); 

但是這也給出了同樣的錯誤。

任何幫助?

我已經試過這也

$("#search").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "https://url.com", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          label: item.FirstName, 
          id: item.LastName 

         }; 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function (event, ui) { 
      $('#search').val(ui.item.label); 
         } 
    }); 

這甚至沒有工作

回答

0

嘗試data.d源。 像這樣:

$("#search").autocomplete({ 
    source: data.d, 
}); 

只是data是一個對象,但data.d使得它成爲一個可讀的字符串或類似的東西。

而且,你不應該使用成功的功能,因爲它是由jQuery的,因爲1.8被棄用,改用此:

$.ajax({ 
    type: "GET", 
    url: "https://url.com", 
    dataType: "json" 
}).done(function(data){ 
    console.log(data.d); 
}); 
+0

仍然得到chage..Uncaught類型錯誤後,同樣的錯誤:this.source是不是函數 –

+0

我正在使用 from nuget –

相關問題