1

当我通过键盘箭头选择一个项目时,输入字段中的选择会按预期更改。但是,如果我随后将鼠标移出该项目,则输入字段将恢复为用户键入的任何内容,从而丢失先前通过键盘所做的选择。

jsfiddle 示例

文档声称我想要完成的实际上是默认行为,但它似乎不起作用。

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

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

4

2 回答 2

0

当我在你的小提琴中注释掉 Javascript 的最后一行时,预期的行为又开始起作用了。

我不完全确定为什么,但看起来你两次调用自动完成脚本,也许他们以某种方式相互干扰。

于 2012-07-20T20:30:07.410 回答
0

“在焦点移动到一个项目(不是选择)之前,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.

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

参考

于 2012-07-20T20:35:55.140 回答