jquery自动完成运行ajax但不显示结果

时间:2013-04-19 13:34:51

标签: javascript jquery html css jquery-ui

我的网站上安装了jquery和jquery ui,我有

$(document).ready(function(){
        //alert('it ran');
        $('.global_search').autocomplete({ source: "global_search.php", select: function( event, ui){ window.open( ui.item.url ); } });
    });

当我查看chrome中的网络选项卡时,我看到了结果 global_search.php?term = 54650(注意我搜索了54650)

我从中得到的回应是

{"150000":{"name":"Event: TestRod08.28.2012","value":"Event: TestRod08.28.2012","link":"event_profile.php?event_id=2939"}}

哪个应该显示“Event:TestRod08.28.2012”,点击后应该转到event_profile.php?event_id = 2939,但列表从未显示出来?我有其他jquery自动完成工作在同一页面上,列表显示正常。任何想法?

3 个答案:

答案 0 :(得分:1)

尝试

  $('#test').autocomplete({
    source : function(request, callback) {
        $.ajax({
            url : "data.json",
        datatype: 'json'
        }).done(function(data) {
            var results = []

            $.each(data, function(key, value) {
                        results.push({
                                    id : key,
                                    label : value.name,
                    url: value.link
                                });
                    });

            callback(results);
        });
    },
    select : function(event, ui) {
        window.open(ui.item.url);
    }
  });

演示:Plunker

答案 1 :(得分:0)

var options, a;
jQuery(function(){
  options = { serviceUrl:'global_search.php'};
  a = $('.global_search').autocomplete(options);
}); 

你可以试试。

答案 2 :(得分:0)

发现我的global_search.php返回了一个json对象而不是一个json数组(我有键控值)当我删除键时它工作得很好

谢谢大家的帮助