输入内容后jQuery UI自动完成

时间:2015-09-22 07:52:37

标签: javascript jquery ruby-on-rails ruby coffeescript

我想在输入' @'(在签名处)后自动填写用户名。

form_html.erb:

  <div class="form-group ui-widget">
    <div class="col-sm-5">
      <%= f.text_area :content, rows: 5, placeholder: '...', class: 'form-control', id: "tags", 'data-article-id': @article.id.to_s %>
    </div>
  </div>

这是我的咖啡因:

$ ->
  id = $("#tags").data("article-id")
  $("#tags").autocomplete
    source:  '/articles/' + id + '/autocomplete.json'
    minLength: 1

目前的外观:

enter image description here

我想输入&#34; @&#34;(在符号处)然后自动完成用户名。

请告诉我你是否有好主意,提前致谢!

2 个答案:

答案 0 :(得分:0)

根据this post,您可以通过自定义fd_set功能来完成工作。

答案 1 :(得分:0)

作为@Bas van Stein的建议,我可以在json中为每个名字添加@符号:

  def autocomplete
    @articles = Article.find_by(id: params[:article_id])
    @commentor_names = @articles.comments.map{|e| "@" + e.name}.uniq
                                         .map{|e| e if e.match(/^#{params[:term]}/i) }.compact
    respond_to do |format|
      format.html
      format.json {
        render json: @commentor_names
      }
    end

然后出现:

enter image description here

它可以工作,但效率低下,不完美。