2013-12-10 146 views
0

我第一次使用twitter typeahead。typeahead twitter not working

我喜歡我的JSON格式:

[{"merchant_name":"Myntra"},{"merchant_name":"Adlabs imagica"},{"merchant_name":"godaam"},{"merchant_name":"Homeshop18"},{"merchant_name":"Hotels.com"}] 

我這個轉換到一個數組中,並把它傳遞給預輸入功能。但這並不令人着迷。請幫我解決這個問題

$('#search_bar').keyup(function(e){ 
     var searched = $('#search_bar').val() 
     $.getJSON('<?php echo base_url();?>get_data','title='+searched,function(result){ 
     var elements = []; 
     $.each(result,function(i,val){ 
       elements.push(val.merchant_name) 
     }) 
     $('#searh_bar').typeahead({ 
        source:elements 
     }) 
    }) 
}); 
+1

有一個錯字的錯誤在你code..' $( '#searh_bar')預輸入({ 來源:元素 })'..它應該是' search_bar' – nik

回答

0

如果它真的嘰嘰喳喳你使用預輸入,那麼至少有兩件事情錯在這裏:

1)你不應該叫.typeahead()您每個鍵之後的元素,而是在初始化期間一次。

2)在typeahead.js

從你正在嘗試做的沒有source參數,它真的好像你需要別的東西:你想每按一次鍵(使用remote:爲之後查詢您的服務器那),並轉換結果(使用filter:)。

因此,像:

$('#search_bar').typeahead({ 
    remote: { 
    url: '<?php echo base_url();?>get_data?title=%QUERY', 
    filter: function(parsedResponse) { 
     var elements = []; 
     $.each(parsedResponse, function(i, val) { 
     elements.push(val.merchant_name); 
     }); 
     return retval; 
    } 
    } 
});