我有使用rails3-jquery-autocomplete插件,我只是想知道如何使用它来执行多个单词的自动完成。

例如输入 rails , gem
它应该会生成两次自动列表。

如何解决这个问题呢?..

最佳答案

rails3-jquery-autocomplete插件?似乎它不支持多个自动完成功能,您需要修改插件代码!!
如果您坚持以前的想法,请按照我的步骤进行。

  • 运行bundle show rails3-jquery-autocomplete以使插件正常运行Directroy
  • 伴侣/lib/autocomplete.rb
  • 像这样修改define_method:
    define_method("autocomplete_#{object}_#{method}") do
      arr = params[:term].split(",")
      unless params[:term] && params[:term].empty?
        items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{arr[arr.size-1]}%"]).limit(limit).order(order)
      else
        items = {}
    end
    
    render :json => json_for_autocomplete(items, method)
    

    结束
  • 像这样修改autocomplete-rails.jsfunction split(val) {return val.split(/,\s*/);}function extractLast(term) {return split(term).pop();}$(document).ready(function(){$('input[autocomplete]').each(function(i){ $(this).autocomplete({ source: $(this).attr('autocomplete'), focus: function() { return false; }, select: function(event, ui) { var terms = split( this.value ); // remove the current input terms.pop(); // add the selected item terms.push( ui.item.value ); // add placeholder to get the comma-and-space at the end terms.push(""); this.value = terms.join(","); return false; } });});});
  • 重新启动服务器,然后尝试

  • !!请记住,最好备份autocomplete.rb以避免在运行捆绑安装后覆盖。

    祝你好运!

    关于jquery - 如何使用rails3-jquery-autocomplete插件实现多个单词的自动完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3382771/

    10-13 04:45