jQuery UI自动完成下箭头上箭头

28

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

问题似乎出在

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

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

这对于鼠标焦点非常有效 - 但是当我使用 arrowUparrowDown 时,它会选择 ui.item.id 而不是 ui.item.label

我该如何修复这个问题,以便要么:

  1. input 值完全不会改变[即保留用户输入的术语]
  2. 使用 keydown/keyup 更新 input 值,使其等于用户当前聚焦的值

谢谢

1个回答

60

请确保阻止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;
}

哇!太棒了,非常感谢@andrew - 我完全忘记尝试过那个 :) - Andy
2
这个程序是正常运行的,但有一个问题,在键(向上/向下)选中某一项时,文本框显示的是值而不是标签,但按下回车后它又会显示出标签。 - Manjay_TBAG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接