问题描述
||
我想选择第一个项目,但不想用它来填充输入。因此,如果我按Enter键,则会选择第一个值,但不会自动填充输入,直到用户按下Enter键或在屏幕上的其他位置单击导致列表关闭为止。
我看过selectFirst和autoFocus,但它们并不是我想要的。不知道我所要求的是否甚至可能,但在我看来确实是必须的。
有任何想法吗?
解决方法
首先,
selectFirst
和autoFocus
不是jQueryUI自动完成功能的选项。它们来自最终被jQueryUI所采用的插件,因此不推荐使用此处找到的文档。
我不确定要完成的工作,但听起来像是您只是不想在下拉菜单中关注an2ѭ元素时填充该元素。确实有可能:
$(\"#autocomplete\").autocomplete({
source: [...],focus: function() {
return false;
}
});
从focus
事件处理程序返回false
将阻止菜单中的焦点项目填充下拉菜单。
请注意,单击页面上的其他位置不会填充input
元素。这是因为当您将鼠标移离菜单时,您选择的项目会失去焦点。在我看来,这似乎是自然的举动,但也可能有一种方法可以实现这一目标。
这是一个工作示例:http://jsfiddle.net/andrewwhitaker/RyTuV/
, 您可以同时使用focus
事件处理程序和autoFocus
选项来填充隐藏的输入。然后,当自动完成菜单关闭时,使用close
事件处理程序使用隐藏的输入填充所需的任何字段。