我正在使用jQuery UI的自动完成版本1.8.13,默认情况下,jQuery默认使用查询参数“?term =”,而我的应用程序在创建的字符串中使用“?q =” 。我可以在后端将变量更改为“term”,但我宁愿告诉jQuery服务器尝试发送它的内容。有没有办法改变这个?
现在我只是有这样的东西,如果我在后端将变量更改为“term”,它会起作用,但就像我说我想将其更改为“q”而我在网上找不到任何信息设置参数(有效):
$( "#input-search").autocomplete({
source: "/search/autocomplete/"
});
答案 0 :(得分:25)
您可以使用callback form of source
并自行处理与服务器的所有互动。像这样:
$("#input-search").autocomplete({
source: function(request, response) {
$.get('/search/autocomplete', { q: request.term }, function(data) {
response(data.split('\n'));
});
}
});
答案 1 :(得分:11)
上面的答案是一个很好的简单示例,帮助我在我的应用程序上获得此结果,该结果从响应数据生成无序列表,显示自动完成结果:
$("#input-search").autocomplete({
source: function(request, response) {
$.ajax({
url: "/search/autocomplete",
dataType: "json",
data: {
q: request.term
},
success: function(data) {
response(data);
}
});
},
}).data("autocomplete")._renderItem = function(ul, item) {
$(ul).attr('id', 'search-autocomplete');
return $("<li class=\""+item.type+"\"></li>")
.data( "item.autocomplete", item )
.append("<a href=\""+item.url+"\">"+item.title+"</a>").appendTo(ul);
};