【问题标题】:Rails 3 - how to use autocomplete with textarea instead of classic text input?Rails 3 - 如何使用带有文本区域的自动完成功能而不是经典文本输入?
【发布时间】:2014-05-03 23:42:58
【问题描述】:

我正在玩rails3-jquery-autocomplete gem,它对我很有效。这是一个示例,我的自动完成输入看起来如何:

= f.autocomplete_field :interest, autocomplete_interest_users_path, :"data-delimiter" => ','

因为很多时候我需要在输入中写入很多单词,这就是为什么使用 textarea 而不是默认的 input 更好,但是如何做到这一点呢?有什么想法吗?

提前谢谢你。

【问题讨论】:

  • 您要自动完成整个输入还是输入中的单个单词?
  • 我不确定我是否明白你的意思 - 我想对 textarea 使用自动完成功能,而不是 input type=text
  • 您是要为整个文本选择一个值,还是要为文本中输入的单词选择一个值。
  • 文本中输入的单词的值。
  • @SteveJorgensen 如果我需要自动完成整个文本输入,你能帮忙吗? stackoverflow.com/questions/20594445/…

标签: jquery ruby-on-rails-3 autocomplete textarea


【解决方案1】:

可能是http://rightjs.org/ui/tags/demo 之类的东西? http://st-on-it.blogspot.com/2011/04/making-tags-with-rails-and-rightjs.html 上有一篇关于如何使用 Rails 进行这项工作的文章。

【讨论】:

  • 这正是我所需要的,但可能会有一点问题,因为我作为我的默认JS框架使用jQuery,那么这两个框架如何配合在一起呢?
【解决方案2】:

这是我用 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"

【讨论】:

    猜你喜欢
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多