2014-07-07 112 views
0

嗨我已經閱讀了很多關於這個答案,並按照指示,但它只是不適合我。
JqueryUI自動完成,自定義的renderItem不起作用

$(document).ready(function(){<br> 
    $(".header-search-box").autocomplete({ 
    source: function(req,res) { 
     $.ajax({ 
      url: "http://localhost:3000/autocomplete/"+req.term, 
      dataType: "jsonp", 
      type: "GET", 
      data: { 
       search: req.term 
      } 
     }); 
    }, 
    select: function(event, ui) { 
    } 
}).data('ui-autocomplete')._renderItem = function(ul,item){ 
    console.log('I am coming back') 
    return $("<li>").append("<a>"+item.model+"</a>").appendTo(ul); 
} 

});

此代碼不起作用_renderItem函數甚至不會打印到控制檯。

再次我按照所有的在以前的答案的建議,任何幫助,將不勝感激

編輯1

阿賈克斯成功功能是本

success: function(data) { 
       res($.map(data, function(item) { 
        return { 
         : item.make + ' ' +item.model,//text comes from a collection of mongo 
         value: item.model 
        }; 
       })); 
      }, 

我我不知道如何將其轉換成數據對象...

+0

您尚未設置源函數響應... – j809

+0

@ j809我已將它用於測試目的進行了註釋,並在上面的代碼中將其刪除。讓我補充說...我評論的原因是我不知道如何將響應分配給數據。 – Babar

回答

1

我試着用本地數組源自定義_renderItem

它很好地工作,並提供警報設置。

到這裏看看:http://jsfiddle.net/XJ5En/

JS:

var tags = ["abc","bas","cqwe"]; 
$(".header-search-box").autocomplete({ 
    source: tags 
}).data('ui-autocomplete')._renderItem = function(ul,item){ 
    alert('I am coming back'); 
    return $("<li>").append("<a>"+item.value+"</a>").appendTo(ul); 
}; 

必須有一些錯誤分配給源的響應。請檢查它是否正確。

+0

你的回答讓我朝正確的方向發展,因此選擇它作爲正確的答案。謝謝 – Babar