【发布时间】:2011-08-15 14:10:02
【问题描述】:
尝试在自动完成中显示按“术语”过滤的列表
我有一个使用 jquery-ui 自动完成功能的 rails 3 应用程序。我已经到了可以搜索用户列表的地步。但是,当我键入指定用户的前几个字母时,会出现整个列表(不确定这是否是我的 Javascript 或控制器内的 project_list 的问题),此时应该只出现一个用户。但我不希望它这样做。据我了解,我必须使用 var term 并通过它过滤我的列表,但是我不知道该怎么做,代码如下。
用户控制器.rb
def project_list
list=User.all.map{|i|i.full_name}
arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json
render :json =>arr
end
应用程序.js
$("#tags").autocomplete({
minLength: 2,
source: function(request, response) {
$.ajax({
url: "/managerlist",
dataType: "json",
data: {
term: request.term
},
success: function(data) {
var results = [];
$.each(data, function(i, item) {
var itemToAdd = {
value: item,
label: item
};
results.push(itemToAdd);
});
return response(results);
}
});
}
});
}
【问题讨论】:
标签: ajax ruby-on-rails-3 jquery autocomplete