JQuery UI 自动完成 - 按 Enter 键后隐藏列表

作者:编程家 分类: js 时间:2025-07-31

使用JQuery UI的自动完成功能可以为网页表单的输入框提供智能提示和补全功能。然而,默认情况下,自动完成列表会一直显示,直到用户点击某个选项或者点击其他地方。如果我们希望在用户按下"Enter"键后自动隐藏自动完成列表,我们可以通过一些简单的代码实现这个功能。

在JQuery UI中,我们可以使用"select"事件来捕捉用户选择自动完成列表中某个选项的操作,然后在该事件中添加代码来隐藏自动完成列表。但是,通过"select"事件来监听"Enter"键的按下并进行相应的操作是不可行的,因为该事件只会在用户点击列表中的选项时触发。

为了解决这个问题,我们可以使用"keydown"事件来监听"Enter"键的按下,并在该事件中判断是否需要隐藏自动完成列表。具体的实现代码如下所示:

javascript

$(document).ready(function() {

$("#inputField").autocomplete({

source: ["Apple", "Banana", "Cherry", "Durian", "Elderberry"],

select: function(event, ui) {

// 用户选择了某个选项,隐藏自动完成列表

$("#inputField").autocomplete("close");

}

}).keydown(function(event) {

if (event.keyCode === 13) {

// 用户按下了"Enter"键,隐藏自动完成列表

$("#inputField").autocomplete("close");

}

});

});

在上述代码中,我们首先通过`$("#inputField").autocomplete()`函数初始化自动完成功能,并指定了一个字符串数组作为自动完成的候选项。然后,我们通过`.keydown()`函数来监听用户的按键事件。如果用户按下了"Enter"键(keyCode为13),我们就调用`$("#inputField").autocomplete("close")`来隐藏自动完成列表。

通过以上代码,我们成功实现了按下"Enter"键后隐藏自动完成列表的功能。用户可以在输入框中输入关键词,然后使用自动完成列表中的选项进行补全,而无需手动隐藏列表。

**案例代码**

html

JQuery UI自动完成 - 按Enter键后隐藏列表

实现按Enter键隐藏自动完成列表

以上是通过JQuery UI实现按下"Enter"键后隐藏自动完成列表的案例代码。在这个例子中,我们创建了一个带有输入框的网页,并使用JQuery UI的自动完成功能为该输入框添加了智能提示和补全的功能。通过监听"keydown"事件,我们判断用户是否按下了"Enter"键,并在用户按下"Enter"键后调用`$("#inputField").autocomplete("close")`来隐藏自动完成列表。

这个功能可以提升用户体验,让用户更加方便地使用自动完成功能。无需手动隐藏列表,用户只需要输入关键词并按下"Enter"键即可快速选择候选项。如果你也希望在自动完成功能中实现按下"Enter"键后隐藏列表,不妨尝试一下以上代码。