2013-12-10 99 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; 
    } 
    } 
});