0

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"]
      }
    });
4

2 に答える 2

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
      }
    });
  }
});
于 2013-03-28T13:02:27.813 に答える
0

1 つの関数で 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);

      }
    });
于 2013-03-28T12:58:04.077 に答える