3

I'm using the gem called rails3-jquery-autocomplete
https://github.com/crowdint/rails3-jquery-autocomplete

It used not to show the message "no existing match" when there's no matched record.
However, now it always pops up the message showing "no existing match"

How can I disable this??

My view

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

2 回答 2

2

试试下面的脚本

$('autocomplete_element_selector').on('autocompleteresponse', function(event, ui) { var content; if (((content = ui.content) != null ? content[0].id.length : void 0) = == 0) { $(this).autocomplete('close'); } });

于 2015-12-17T14:19:30.943 回答
0

如果 Rails 向客户端返回一个空哈希(public/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 生成自动完成:未压缩

于 2014-01-03T11:59:27.270 回答