使用gem“rails3-jquery-autocomplete”时,如何禁用“no existing match”?

时间:2013-04-17 18:49:56

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

我正在使用名为 rails3-jquery-autocomplete 的gem https://github.com/crowdint/rails3-jquery-autocomplete

当没有匹配的记录时,它不会显示“没有现有匹配”的消息 但是,现在它会弹出显示"no existing match"

的消息

如何禁用此功能?

我的观点

<%= autocomplete_field_tag 'search', params[:search], autocomplete_community_title_communities_path, :class =>'input', :placeholder => 'keyword' %>

2 个答案:

答案 0 :(得分:2)

尝试以下脚本

$('autocomplete_element_selector')。on('autocompleteresponse',function(event,ui){         var内容;         if(((content = ui.content)!= null?content [0] .id.length:void 0)=== 0){           $(本).autocomplete( '关闭');         }       });

答案 1 :(得分:0)

如果Rails向客户端返回一个空哈希(公共/ javascript / autocomplete-rails.js中第59行的行),则此Gem提供的jQuery脚本会推送此消息:

...

if(arguments[0].length == 0) {
  arguments[0] = []
  arguments[0][0] = { id: "", label: "no existing match" }
}
jQuery(arguments[0]).each(function(i, el) {
  var obj = {};
  obj[el.id] = el;
  jQuery(e).data(obj);
});
response.apply(null, arguments);

...

我不知道你究竟想做什么,但是你可以从autocomplete-rails.js中删除下一个块(或更改标签值)

if(arguments[0].length == 0) {
  arguments[0] = []
  arguments[0][0] = { id: "", label: "no existing match" }
}

此文件应位于您的public / javascript目录中。如果在您的情况下压缩此文件,您可以通过官方文档中的此命令解压缩它,然后修复它:

  

rails生成自动完成:未压缩