Rails(3.2.9)自动完成工作像jQuery组合框?

时间:2012-12-22 06:54:14

标签: ajax ruby-on-rails-3 ruby-on-rails-3.2

我的表单上有一个自动填充字段,但是我需要强制用户从列表中选择一个值(使用自动填充,用户不限于列表中的项目 - 它是一个文本字段他们可以输入他们想要的任何东西。 jQuery combobox添加了我需要的其他功能。任何人都可以帮助我在表单中添加其他功能 - 是否有可以遵循的教程或示例?

这是我到目前为止所做的事情(而且它正在运作 - 谢谢Ryan Bates)

view - new.html.erb

 <%= f.input :widget_name, input_html: { data: { autocomplete_widget_source: widgets_list_path } } %>

控制器

def list
  @widgets = Widget.order(:name).where("name like ?", "%#{params[:term]}%")
  render json: @widgets.map(&:name)
end

JQuery的

jQuery ->
  $('#model_widget_name').autocomplete
  source: $('#model_widget_name').data('autocomplete-widget-source')

我尝试使用简单的collection_select,但由于选择列表的大小,文档太大(10,000个项目)。

<%=  collection_select :model, :widget_id, Widget.all, :id, :name, selected: @model.widget_id  -->

提前致谢。

1 个答案:

答案 0 :(得分:0)

我想我终于找到了我想要的答案。

我添加了以下内容

jQuery ->
  $('#model_widget_name').bind 'autocompletechange', (event, ui) ->
    if (!ui.item)
      $(this).val(''); 

这有意义吗?我需要更多吗?

感谢下列人员: