jquery autocomplete使用多个源(本地json api和jsonp)

时间:2012-11-18 18:02:07

标签: javascript json jquery-ui autocomplete jquery-autocomplete

基本上我有一个酒店搜索引擎,在网站顶部有一个搜索字段,必须显示自动完成结果。结果可以是酒店或地点(城市)。可与Facebook自动填充相比(搜索可以是人,页面......)

我从基本的geonames jsuery示例开始:http://jqueryui.com/autocomplete/#remote-jsonp

但我无法弄清楚如何将自己的JSON api用于酒店。我知道我应该将我的JSON酒店与地理名称合并吗?谁可以告诉我一个如何做到的片段?

1 个答案:

答案 0 :(得分:9)

最简单的高级代码应该如下所示,其中requestFromSource1是您请求地理名称的地方,requestFromSource2是您查询自己的自动完成引擎的地方。

  $( "#city" ).autocomplete({
        source: function( request, response ) {
    var resultFromSource1 = null;
    var resultFromSource2 = null;
    var agregateResults = function(){
        if( resultFromSource1 && resultFromSource2){
            var result = resultFromSource1.concat(resultFromSource2);
            response(result);
        }
    }
    requestFromSource1(function( result ){
        resultFromSource1 = result;
        agregateResults();
    });
    requestFromSource2(function( result ){
        resultFromSource2 = result;
        agregateResults();
    });
        }
    });
});

更复杂的情况是通过相关性得分合并。在你的情况下,我担心这个说明是可能的。