jQuery Autocomplete在鼠标输出时失去了选择权

当我通过键盘箭头选择项目时,输入字段中的选择会按预期更改。 但是,如果我将鼠标移出项目,则输入字段将恢复为用户键入的内容,从而丢失以前通过键盘进行的选择。

jsfiddle的例子

文档声称我正在尝试完成的事实上是默认行为,但它似乎无法正常工作。

另一个提到行为似乎已经改变的参考: http : //forum.jquery.com/topic/autocomplete-s-menu-items-mouseover-behavior#14737000002991273

我目前正在使用jquery-rails 2.0.2,它引入了jQuery-1.7.2。

当我在你的小提琴中注释掉Javascript的最后一行时,预期的行为会再次开始工作。

我不完全确定原因,但看起来你要两次调用自动完成脚本,也许它们会以某种方式干扰彼此。

“在将焦点移动到项目(未选择)之前,ui.item指的是焦点项目。焦点的默认操作是将文本字段的值替换为焦点项目的值,但仅在焦点事件被触发时通过键盘交互。取消此事件可防止更新值,但不会阻止菜单项被聚焦。“

Text abode是描述焦点事件的内容。
如果您看一下它说明The default action of focus is to replace the text field's value with the value of the focused item, though only if the focus event was triggered by a keyboard interaction.

因此,正如您所看到的,此演示显示该选项获得焦点但值不会更改。

参考