我使用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);
};
});
对于这个问题,我将不胜感激。
祝你好运, 拉莫
答案 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);
};
我设置了一个远程调用,只是为了显示它的工作原理