jquery autocomplete获取每个项目的可点击链接

时间:2012-01-02 16:50:22

标签: jquery autocomplete hyperlink label

我使用solr实例作为jquery autocompletion ui插件的数据源。从请求中我得到一个标签和一个搜索值的id作为json字符串。目前,两个值都显示在自动完成框中,例如如果一个类型“重新”我得到一个标签,其中“re”在,并且该项目的id分为两个单独的行,例如

RES

12

我想要实现的是仅将项目标签作为链接而将id作为该链接的参数,所以如果我搜索“res”,我只获得一个列表条目作为链接,如果我将它悬停在我的链接上:http://mydomain.com/result/12

我认为可行的一个解决方案是JQuery UI Autocompletion - Adding a action link to each result item。 即使使用此解决方案,我也会得到两个列表结果(searchterm结果和相应的id)

我将上述链接中的代码修改为:

$("#product").autocomplete({
            source: '{{ path('MyRemotSource_search') }}',
            minLength: 2,

        })
     $.ui.autocomplete.prototype._renderItem = function (ul, item) {
         return $('<li><li />').data('item.autocomplete', item)
        .append('<li></li>').add('<a href="http://mydomain.de/result/'+item.value+'">'+ item.label+ '</a>')
    .appendTo(ul);
         };
   });

对于这个问题,我将不胜感激。

祝你好运, 拉莫

1 个答案:

答案 0 :(得分:6)

你可以这样做:

$.ui.autocomplete.prototype._renderItem = function(ul, item) {
    var a = $('<a>', {
        href: "http://mydomain.de/result/" + item.value,
        text: item.label
    });
    var $li = $('<li>');
    return $li.append(a).data('item.autocomplete', item).appendTo(ul);
};

我设置了一个远程调用,只是为了显示它的工作原理

在此处http://jsfiddle.net/sRyfq/