我正在使用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);
}
答案 0 :(得分:1)
尝试将remote
更改为prefetch
:
prefetch:'http://192.168.0.108/paletten/nummer_eingelagert'
如this GitHub typeahead.js issue中所述:
在对此进行更多思考后,我意识到必须这样做 远程api的责任是返回过滤结果,而不是 预输入。由于我使用静态json数据源,我返回 每次应该使用预取的结果都是相同的。所以 关闭这个问题。