我尝试在执行ajax请求后返回bootstrap typeahead的结果,但它不起作用,但是当我不发起ajax请求时它确实有效。
这不起作用:
$(".typeahead").typeahead({
source: function(query, process) {
return $.ajax({
url: "/typeahead",
type: "GET",
data: "action=" + query,
success: function(result) {
return result; // this returns an array checked with console
}
});
}
});
没有ajax它起作用:
$(".typeahead").typeahead({
source: function(query, process) {
return ["option1", "option2", "option3"]
}
});
答案 0 :(得分:2)
您应该返回进程(结果)而不是仅返回结果。
$(".typeahead").typeahead({
source: function(query, process) {
return $.ajax({
url: "/typeahead",
type: "GET",
data: "action=" + query,
success: function(result) {
return process(result); // this returns an array checked with console
}
});
}
});
答案 1 :(得分:0)
在一个函数中设置ajax调用..
function typeahead()
{
$.ajax({
url: "/typeahead",
type: "GET",
data: "action=" + query,
success: function(result) {
return result; // this returns an array checked with console
}
});
}
初始化之后,你把这个代码放到这个
$(".typeahead").typeahead({
source: function(query, process) {
var data=typeahead(query);
process(data);
}
});