Jquery UI自动完成选择第一项但不填充输入

时间:2011-05-31 15:26:00

标签: jquery jquery-ui jquery-ui-autocomplete

我想选择第一项,但不想用它填充输入。因此,如果我按回车键,则会选择第一个值,但输入将永远不会自动填充,直到用户点击进入或点击屏幕上的其他位置,导致列表关闭。

我看过selectFirst和autoFocus,但它们并不是我想要的。不确定我要求的是否可能,但在我看来它一定是。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

首先,selectFirstautoFocus不是jQueryUI autocomplete上的选项。它们来自最终被采用到jQueryUI中的插件,所以发现here的文档已被弃用。

我并不清楚你想要完成什么,但是当你在下拉菜单中关注它时,听起来你只是不希望一个项目填充input元素。这确实是可能的:

$("#autocomplete").autocomplete({
    source: [...],
    focus: function() {
        return false;
    }
}); 

focus事件处理程序返回false将阻止菜单中的焦点项填充下拉列表。

请注意,点击页面上的其他位置不会填充input元素。这是因为当您将鼠标从菜单移开时,您选择的项目将失去焦点。这对我来说似乎是自然的行为,但也许有办法让这种情况发生。

以下是一个有效的例子:http://jsfiddle.net/andrewwhitaker/RyTuV/

答案 1 :(得分:0)

您可以同时使用focus事件处理程序和autoFocus选项填充隐藏的输入。然后,当自动完成菜单关闭时,使用close事件处理程序使用隐藏输入填充所需的任何字段。