【问题标题】:rails3-jquery-autocomplete Populate drop down on initial focusrails3-jquery-autocomplete 在初始焦点上填充下拉
【发布时间】:2011-11-16 08:31:14
【问题描述】:

当自动完成文本字段中没有任何内容时,我试图让来自自动完成的项目下拉列表自动填充焦点,其中包含来自特定表格的所有条目。除了我需要这个功能之外,一切都可以完美地工作。

我试过了:

$('#activity_name').focus(function() {
  if (!$(this).val() || $(this).val() == '') {
    $(this).val('%');
    $(this).trigger("focus");
  }
})

其中 #activity_name 是 autocomplete_field_tag。您可以从值中看出我试图让表中的所有项目显示该字段最初关注的时间。

我已将 autocomplete_rails.js 文件更改为使用 1+ 个字母而不是 2+ 个字母,因此它应该只使用 % 字符进行查询(我只需在文本字段中输入 % 即可确认)。

这是我在 autocomplete_rails.js 中更改的代码:

search: function() {
  var a = c(this.value);
  if (a.length < 1) return ! 1
},

任何见解都将不胜感激。

【问题讨论】:

  • 那么问题出在哪里?有什么错误吗?
  • 没有错误。我只是不知道如何用表格中的所有项目显示下拉焦点。现在,text_field 自动填充 '%' 焦点,但下拉菜单没有出现。似乎需要一个按键来调用搜索,但 autocomplete_rails.js 文件中没有按键监听器。

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


【解决方案1】:

从定义源开始。

您实际上可以重构我的解决方法。

                    $("input#xiruki").autocomplete(
                    {
                        source: <%= raw Category.select("distinct description as value, code as name, id as ID").where("description ILIKE ?", "%#{params[:term]}%").to_json %>,
                        minLength: 0,
                        select: function (event, data) {
                            $(this).autocomplete('disable');
                        console.log(data.item);

                        }
                    })
                    .blur(function(){
                        $(this).autocomplete('enable');
                    })
                    .focus(function () {
                        $(this).autocomplete('search', '');
                    });

您可以将 ILIKE 术语更改为 LIKE,因为 ILIKE 仅适用于 PG。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2012-11-08
    相关资源
    最近更新 更多