Typeahead 0.9.3自动完成遥控器无法正常工作

时间:2015-09-25 10:57:27

标签: javascript autocomplete laravel-5 typeahead.js

我正在使用typeahead作为自动填充字段。当我在这里使用像explaint这样的选项遥控时:https://blog.twitter.com/2013/twitter-typeaheadjs-you-autocomplete-me 它显示所有条目,而不是它应显示的子集。 这是js代码:

<script type="text/javascript">
jQuery(document).ready(function(){
  jQuery('#palettenNummerEinlagerung').typeahead({
    name: 'nummer',
    remote:'http://192.168.0.108/paletten/nummer_eingelagert'
  });
});  
</script>

应该远程获取json的服务器端操作:

public function getPalettennummerEingelagert(){
    $result=\DB::table('paletten')
    ->leftJoin('einlagerungen', function ($join) {
        $join->on('paletten.id', '=', 'einlagerungen.palette_id');
    })
    ->whereNotNull('einlagerungen.palette_id')
    ->whereNull('einlagerungen.entahmedatum')
    ->where('nummer', 'LIKE', '%'.\Input::get('q').'%')
    ->select('nummer')
    ->get();
    $returnArr=array();
    for ($i=0;$i<count($result);$i++)
    {
            $returnArr[]=''.$result[$i]->nummer.'';
    }
    return json_encode($returnArr);
}

1 个答案:

答案 0 :(得分:1)

尝试将remote更改为prefetch

prefetch:'http://192.168.0.108/paletten/nummer_eingelagert'

this GitHub typeahead.js issue中所述:

  

在对此进行更多思考后,我意识到必须这样做   远程api的责任是返回过滤结果,而不是   预输入。由于我使用静态json数据源,我返回   每次应该使用预取的结果都是相同的。所以   关闭这个问题。