【发布时间】:2018-01-29 20:32:23
【问题描述】:
我无法让预先输入为我工作。
我的html代码是这样的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/js/typeahead.bundle.min.js"></script>
</head>
<body>
<div id="remote">
<input class="typeahead" type="text" placeholder="Oscar winners for Best Picture">
</div>
<script>
$(document).ready(function () {
var bestPictures = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/service-autocomplete.php'
}
});
$('#remote .typeahead').typeahead(null, {
name: 'best-pictures',
display: 'value',
source: bestPictures
});
});
</script>
</body>
</html>
我的服务 (service-autocomplete.php) 包含以下内容:
<?php
$data = [
[
"value" => "amelie",
],
[
"value" => "anastasia",
],
[
"value" => "paul",
],
[
"value" => "pierre",
],
];
header('Content-Type: application/json');
echo json_encode($data);
现在无论我在输入中输入什么(1 个字母或多个字母),都只会出现第一个建议 (amelie)。
我希望 typeahead 显示所有结果:amelie、anastasia、pierre、paul。
我做错了什么?
【问题讨论】:
标签: typeahead.js