【问题标题】:How can I disable "no existing match" when using the gem "rails3-jquery-autocomplete"?使用 gem“rails3-jquery-autocomplete”时如何禁用“不存在匹配”?
【发布时间】:2013-04-10 16:10:34
【问题描述】:

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

的 gem

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

如何禁用此功能??

我的看法

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

【问题讨论】:

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


【解决方案1】:

如果 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 生成自动完成:未压缩

【讨论】:

    【解决方案2】:

    试试下面的脚本

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

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2011-12-17
      • 1970-01-01
      • 2011-04-21
      • 2013-06-25
      • 1970-01-01
      • 2016-02-04
      • 2012-01-30
      • 1970-01-01
      相关资源
      最近更新 更多