我的代码存在问题。我试图使用Twitter-Typeahead和Bloodhound来自动完成搜索。问题是,它不是自动完成的。
代码test.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Page</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<form action="test.php" method="get" autocomplete="off">
<input type="text" name="user" id="users">
<input type="submit" value="Go">
</form>
<script src="js/main.js"></script>
<script src="js/typeahead.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>
代码main.js:
$(document).ready(function() {
var users = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('username'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: 'users.php?query=%QUERY'
});
users.initialize();
$('#users').typeahead({
hint: true,
highlight: true,
minLength: 2
}, {
name: 'users',
displayKey: 'username',
source: users.ttAdapter()
});
});
非常感谢任何帮助。
先谢谢!
答案 0 :(得分:1)
尝试在main.js和typeahead.js之前加载Jquery
答案 1 :(得分:0)
您可以尝试使用此语法来创建Bloodhound:
var users = new Bloodhound({
datumTokenizer: function (datum) {
return Bloodhound.tokenizers.whitespace(datum.username);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {url: 'users.php?query=%QUERY'},
}
});