我正在尝试将Typeahead与Bootstrap 3一起用于搜索框上的自动完成功能。
当我对服务器进行Ajax调用时,我得到了Json的响应。当我将响应传递给typeahead的过程时,我得到的建议是未定义的。但如果我打印它控制台或警报我看到从服务器返回的数据。
以下是代码
javascript代码
$('#search-box .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: function (query, process) {
return $.ajax({
url: "/type_assist/" + query,
type: "GET",
dataType: "JSON",
async: false,
success: function (data) {
alert(data)
return typeof data == 'undefined' ? false : process(data);
}
});
}
});
和java脚本中处理url的java代码。我正在使用import play.libs.Json;
SortedSet<String> set = CityZipTypeAssist(charInput);
return ok(Json.toJson(set));
由于
答案 0 :(得分:0)
我能够解决这个问题..这是javascript中的一些变化,不得不将响应添加到数组对象中,然后将其传递给下面的进程是代码
displayKey: 'value',
source: function (query, process) {
return $.ajax({
url: "/type_assist/" + query,
type: "GET",
dataType: "JSON",
async: false,
success: function (data) {
var suggestions = [];
$.each(data, function(key, val) {
var obj = {};
obj.label = val;
suggestions.push({ value: val });
});
return typeof data == 'undefined' ? false : process(suggestions);
}
});
}
});