【问题标题】:jquery autocomplete: Select item in suggestionsjquery自动完成:选择建议中的项目
【发布时间】:2012-09-01 09:37:11
【问题描述】:

我已经实现了 ui 自动完成小部件。 就我而言,我提供了一个固定的建议列表。

当我输入字段并填写时,我想选择与输入字段中的文本相同的建议。

有什么建议吗?

【问题讨论】:

  • 您可以发布您尝试过的代码或 jsFiddle.net 示例吗?
  • 不太清楚你在问什么。你的意思是如果他们输入了与选择匹配的内容而不实际选择它?

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete


【解决方案1】:

您可以根据需要添加自己的打开事件处理程序,您可以在其中决定将激活哪些菜单项。这是我的示例实现:

$('#myinput').autocomplete({
    source: function(request, response) {
        response(["bus", "car", "carpet", "donkey"]);
    },
    open: function(event, ui) {
        var val = $('#myinput').val();
        var menu = $(this).data("autocomplete").menu;
        var item = menu.element.find('a:contains("' + val + '")').first();
        menu.activate($.Event({ type: "mouseenter" }), item.parent());
    }
});

您可以检查小提琴here

PS:您也许可以直接从 ui 参数中提取菜单对象,但我没有看到它记录在案,现在我懒得进一步调查;)

PS2:当没有找到我没有包含的匹配项时,还要考虑检查空引用..

【讨论】:

  • 正如我所说,我有一个固定的列表,在打字时不会减少。键入时和输入填充字段时,我希望将选择设置为匹配条目。准确地说:假设这是我的列表: Aa-word ab-word ac_word 我开始输入 a - 第一个单词被选中,然后 b - 第二个条目被选中,如果我按 TAB,它需要 2. 条目。然后我再次输入该字段(输入“ab-word”)。然后我想在离开输入字段时突出显示列表中的第二项并采取。好吗?
  • 你说的在哪里?我在 jQuery UI 自动完成插件中没有看到如何在不过滤建议的情况下使用它的选项。你能分享一个简单的小提琴吗?
  • ...
    $input.autocomplete({ autoFocus: false, minLength: 0, source: function(request, response) { response(... 一个完整的数组,已排序,但不是尺寸减小); } }) $input.autocomplete("search", ''); ...
    很难描述更多。可能是这样:输入包含字符串的字段,弹出建议列表并在该列表中预先选择与该字段中的字符串相等的条目。好吗?
  • 看起来这已经在最新版本的 JQuery UI 中停止工作了。 'activate' 方法名称已更改为 '_activate',但即使您修复它,您仍然会收到错误消息“this.active is null”。如果有人能解决这个问题,请告诉我们。
  • @cbp 将 'activate' 替换为 'focus' 对我有用。
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 2019-01-11
  • 2018-12-01
  • 2018-05-11
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多