Jquery 键入时自动完成列表中的空行,而不是建议的名称
我有一个奇怪的问题。我从一个php文件中获得一些JSON格式的信息。 我已经用console.log测试了这一点,数据确实以JSON形式返回,并以自动完成形式作为潜在选项传递。但是,从输入中向下列出的列表只包含完全没有数据的行。以下是我为自动完成功能提供的一段代码:Jquery 键入时自动完成列表中的空行,而不是建议的名称,jquery,jquery-ui,jquery-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,我有一个奇怪的问题。我从一个php文件中获得一些JSON格式的信息。 我已经用console.log测试了这一点,数据确实以JSON形式返回,并以自动完成形式作为潜在选项传递。但是,从输入中向下列出的列表只包含完全没有数据的行。以下是我为自动完成功能提供的一段代码: $(function() { $( "#searchArea" ).autocomplete({ delay: 0, minLength: 2,
$(function() {
$( "#searchArea" ).autocomplete({
delay: 0,
minLength: 2,
source: function(request, response) {
$.ajax({
url: 'search.php',
data: { term: request.term },
success: function(data) {
response($.map(data, function(item) {
return {
label: item.firstName,
value: item.userID};
}));
}
});
}
})
});
我不明白。显然,我在回应电话中遗漏了一些东西,但我不知道是什么。从php返回的数据在多个数组中包含SELECT查询的结果,如下所示:
{“1”:{“userID”:“1”,“firstName”:“Mike”},“2”:{“userID”:“2”,“firstName”:“Michael”}
任何帮助和指导都将不胜感激,因为我从早上就一直在这里。
谢谢。如果响应包含如下格式的数据,则工作正常
{"1":{"userID":"1","firstName":"Mike"},"2":{"userID":"2","firstName":"Michael"}}
测试代码
<html lang="en">
<head>
<meta charset="utf-8">
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<!-- Javascript -->
<script>
$(function() {
var data = {"1":{"userID":"1","firstName":"Mike"},"2":{"userID":"2","firstName":"Michael"}}
$( "#automp" ).autocomplete({
source: function(request, response) {
response( $.map( data, function(item) {
// your operation on data
return {
label: item.firstName,
value: item.userID
}
}));
}
});
});
</script>
</head>
<body>
<!-- HTML -->
<div class="ui-widget">
<p>Type mike</p>
<label for="automp">Users: </label>
<input id="automp">
</div>
</body>
</html>
尝试添加限制:100到源代码的typeahead,我不知道原因,但设置为100可以解决问题
$('#ahead').typeahead({
hint: true,highlight: true,
},
{
limit:100,
source: bloodhound,
....
}
好吧,那样的话,它确实起作用了!为了这个,我烧了一天,结果发现我实际上是在将数据解析到另一个变量,并且仍然在从未解析的数据变量赋值。那真是太遗憾了:不管怎样,谢谢你的关心,谢谢你花时间解决我的愚蠢问题。干杯
$('#ahead').typeahead({
hint: true,highlight: true,
},
{
limit:100,
source: bloodhound,
....
}