我正在玩rails3-jquery-autocomplete gem,它对我很有效。这是一个示例,我的自动完成输入看起来如何:
= f.autocomplete_field :interest, autocomplete_interest_users_path, :"data-delimiter" => ','
因为很多时候我需要在输入中写入很多单词,这就是为什么使用textarea而不是 default input更好,但是该怎么做呢?有任何想法吗?
先感谢您。
我正在玩rails3-jquery-autocomplete gem,它对我很有效。这是一个示例,我的自动完成输入看起来如何:
= f.autocomplete_field :interest, autocomplete_interest_users_path, :"data-delimiter" => ','
因为很多时候我需要在输入中写入很多单词,这就是为什么使用textarea而不是 default input更好,但是该怎么做呢?有任何想法吗?
先感谢您。
也许像http://rightjs.org/ui/tags/demo这样的东西?在http://st-on-it.blogspot.com/2011/04/making-tags-with-rails-and-rightjs.html上有一篇关于使用 Rails 进行这项工作的文章。
这是我用 jQuery 做的:
将此添加为助手:
module ActionView
module Helpers
module FormHelper
def autocomplete_text_area(object_name, method, source, options ={})
options["data-autocomplete"] = source
text_area(object_name, method, rewrite_autocomplete_option(options))
end
end
end
class ActionView::Helpers::FormBuilder
def autocomplete_text_area(method, source, options = {})
@template.autocomplete_text_area(@object_name, method, source, objectify_options(options))
end
end
end
这就是在 Rails 中扩展表单助手的方式。我们在这里所做的是添加我们自己的方法,我们可以在我们的视图中调用它。
现在,将此添加到您的 javascript 文件之一:
$('textarea[data-autocomplete]').railsAutocomplete()
这设置了自动完成 js 脚本来监听和响应我们的文本区域。
你现在应该能够在你的视图中做这样的事情:
f.autocomplete_text_area :name, autocomplete_menu_item_name_menus_path, placeholder: "Menu Item Name", class: 'input-lg menu_item', size: "45x2"