jQuery UI自动完成DownArrow UpArrow

And*_*ndy 25 jquery jquery-ui autocomplete arrow-keys jquery-ui-autocomplete

我在使用jQuery Autocomplete和移动DownArrow和UpArrow时遇到了一些问题?

问题似乎是这样的

<input id="autocomplete-input" value="">

focus: function (event, ui) {
       $('#autocomplete-input').val(ui.item.label);
 }
Run Code Online (Sandbox Code Playgroud)

这适用于MOUSE焦点 - 但是当我使用arrowUparrowDown- 它选择ui.item.id了上面和上面ui.item.label

我该如何解决这个问题,以便:

  1. inputVAL完全不改变[即它使用户输入项]
  2. 它使用keydown/keyup用户所input使用的focusedval 更新val

谢谢

And*_*ker 54

确保阻止focus事件的默认行为:

focus: function (event, ui) {
    this.value = ui.item.label;
      // or $('#autocomplete-input').val(ui.item.label);

    // Prevent the default focus behavior.
    event.preventDefault();
      // or return false;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是有效的,但是当键(向上/向下)位于所选项目文本框时出现一个问题,即显示值而不是标签,但在按 Enter 后再次显示值 (2认同)