返回bootstrap typeahead的结果?

时间:2013-03-28 12:41:03

标签: javascript jquery ajax twitter-bootstrap

我尝试在执行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"]
      }
    });

2 个答案:

答案 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);

      }
    });