jQuery的自动完成插件,JSON
问题描述:
我的要求是实现自动完成我的文本框,我已经下载了jQuery自动完成plugin.Please帮助我如何实现它在我的Rails应用程序 。jQuery的自动完成插件,JSON
我的控制器代码:
def new
@release = Release.new
@ic_ids = params[:ic_ids] ? params[:ic_ids] : []
**@testers = User.find_by_sql("select * from users where id in(select user_id from user_role_assignments where role_id in (select id from roles where name like 'Tester')) order by name").paginate(:page=>params[:page],:per_page=>30)**
if params[:project_id]
@release.project = Project.find(params[:project_id])
end
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @release }
end
end
我想创建一个自动完成@testers。
我的视图代码:
%td.grid.full_panels
-table_panel "Assign Testers" do
%table
%th Name
-puts "testers=#{@testers}"
= form.label :tester_tokens, "Testers"
**= form.text_field :tester_tokens**
感谢, 拉姆亚。
答
当你实现自动完成,没什么2周的方式接近它。
- 带来提前的所有数据。
- 发送Ajax请求到服务器上的每个“的keydown/KEYUP”或“平变化”
对于第一种方法,有一个名为jsonSuggest 一个非常酷的jQuery插件,它真的很容易实现。 你需要像这样(ID,文本)对的JSON对象:
var myData = [{ id : "someId" , text : "someText"} , ... ]
,然后调用下面的代码:
$("#myInput").jsonSuggest({ data : myData , onSelect: function(item){ /* callback code */} })
这甚至可以适合成千上万个对象。它会给多个Ajax调用服务器带来更好的性能。 如果你只是使用jQuery的UI插件,看看the default example
另一种方法(多个Ajax请求)颇为相似,但我不认为jsonsuggest支持它。它由jquery-ui插件支持。 对于这种情况,你应该看看the remote example
你尝试实现它..! – 2011-12-28 09:20:40
是的Sudhir我试着在我的视图文件中进行以下更改::javascript data = #{@testers.to_json} \t = javascript_include_tag:defaults,:cache => true 并在我的application.js $(document)中。 ({。 $( '#ROOT_NAME')自动完成(数据); \t}函数())准备; 但我没有看到数据通过。 – ramya 2011-12-28 09:32:51