【问题标题】:JQuery autocomplete displays only one item using arrows left and rightJQuery自动完成使用左右箭头仅显示一项
【发布时间】:2018-01-21 16:54:08
【问题描述】:

我在文档或谷歌中找不到任何信息。这个问题不需要向你展示代码,所以我将展示这些图像的含义。


1 步:转到https://jqueryui.com/autocomplete/#default 并输入一些内容,例如“a”。

2 步:从上面给出的列表中选择“ActionScript”使用键盘上的 arrowDown

3 步:在选择“ActionScript”时按键盘上的箭头左键。噗!除了“ActionScript”之外,列表的其余部分都消失了。我必须删除此行为,因此即使按下 arrowLeft 或 arrowRight,也会显示完整列表。

【问题讨论】:

  • 网站错误报告在那里?我什至无法提供输入“a”。之后它就死了。错误肯定!不是 SO 的问题。
  • @ZF007 这不是错误,而是一种行为。对于不同的行为,覆盖 onchange 函数以保持浮动部分甚至按下右箭头和左箭头。
  • 旧版本的 Firefox 上不显示该行为。刚刚想通了。

标签: javascript jquery jquery-ui autocomplete


【解决方案1】:

当您按下左键或右键时,您选择了 ActionScript,它会尝试在列表中搜索具有单词 actionscript 的选项,这就是它消失的原因。尝试搜索java,然后按左键或右键列表将在那里它不会消失,因为有更多以java开头的单词,即javascript

【讨论】:

  • 我认为 OP 知道这一点。
  • 我的意思是这个列表应该和以前一样。例如,有一个列表 ["a", "ab", "ac"],然后您键入 "a"。当您向左或向右按​​箭头时,它应该是相同的。完全一样。
  • 在这个列表中 ["a", "ab", "ac"] 如果你输入 "a" 那么列表会是一样的但是如果你选择 ac 那么它就会消失
  • 无论如何它都不应该消失。
  • 只有左右键它不会消失但是如果你按下键然后左右键它会消失。因为在向下键上它选择该值。以及它的自动完成功能。您甚至不想通过向下键选择该值????
【解决方案2】:

我找到了解决办法!

只需在事件中添加这行代码(例如 keydown):

if ($('.ui-menu-item-wrapper').hasClass('ui-state-active') &&
    (e.key == 'ArrowRight' || e.key == 'ArrowLeft')) {
    $(".ui-autocomplete").autocomplete('');
}

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2015-08-14
    相关资源
    最近更新 更多