JqueryUI自动完成,自定义renderItem不起作用

时间:2014-07-07 18:28:06

标签: javascript jquery ajax jquery-ui

您好我已经阅读了很多关于此问题的答案,并按照说明操作,但这对我不起作用。

$(document).ready(function(){<br>
  $(".header-search-box").autocomplete({
    source: function(req,res) {
        $.ajax({
            url: "http://localhost:3000/autocomplete/"+req.term,
            dataType: "jsonp",
            type: "GET",
            data: {
                search: req.term
            }
        });
    },
    select: function(event, ui) {
    }
}).data('ui-autocomplete')._renderItem = function(ul,item){
    console.log('I am coming back')
    return $("<li>").append("<a>"+item.model+"</a>").appendTo(ul);
}
     

});

此代码无效,_renderItem函数甚至不会打印到控制台。

我再次遵循以前答案中的所有建议,任何帮助将不胜感激

修改1

Ajax成功功能就是这个

 success: function(data) {
                res($.map(data, function(item) {
                    return {
                        : item.make + ' ' +item.model,//text comes from a collection of mongo
                        value: item.model
                    };
                }));
            },

我不确定如何将其转换为数据对象......

1 个答案:

答案 0 :(得分:1)

我尝试使用本地数据源自定义_renderItem

它运行良好,并提供设置警报。

看看这里:http://jsfiddle.net/XJ5En/

JS:

var tags = ["abc","bas","cqwe"];
$(".header-search-box").autocomplete({
    source: tags
}).data('ui-autocomplete')._renderItem = function(ul,item){
    alert('I am coming back');
    return $("<li>").append("<a>"+item.value+"</a>").appendTo(ul);
};

将响应分配给源时必定会出错。请检查一下。