如何在 jQuery UI 中启用自动完成功能?

htmljqueryfront end technology更新于 2024/11/24 23:40:17

JQuery 是一个快速简便的 JavaScript 库,用于编写客户端 HTML。它简化了一些 JavaScript 函数,例如 DOM 操作、遍历、事件处理和 AJAX 调用。它还具有跨浏览器兼容性。

什么是自动完成功能?

自动完成功能是用户体验中非常重要的功能。顾名思义,它会自动完成姓名、电子邮件、地址或根据网站上下文指定的标签/建议等形式的文本。

jQuery UI 允许我们使用自动完成小部件来启用自动完成功能。

方法 1:使用 autocomplete() 函数

autocomplete() 函数是一个 jQuery 函数,它与文本输入或搜索栏等输入事件一起使用。当用户输入字母时,此函数会将一些单词传递给函数进行建议。

在这里,我们将使用此自动完成函数来实现自动完成功能,这将增强网页的 UI/UX。当用户输入单词时,它会根据通过 nameSuggestions 变量传递给此函数的单词自动显示一些建议。

算法

步骤 1:在 <head> 中导入所有必需的 jQuery UI 脚本。

步骤 2:在 HTML 中使用 <form> 标签和 <input> 创建一个基本表单。将 id 添加到父元素。

步骤 3:使用 autocomplete() 方法。将建议/标签添加到数组中。

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>    

    <script>
      $(function() {
        var nameSuggestions = ['Java','Javascript',"Python",'C','C++','Web Development','Mobile Development'];
        $("#input").autocomplete({
          source: nameSuggestions
        });
      });
    </script>
</head>
<body>
  <form style="text-align: center;">
    <h1>Tutorials Point Courses.</h1>
    <input id="input" type="text">
  </form>
</body>
</html>

在上面的输出中,当用户输入"M"时,自动完成功能会建议使用数组中可用的标签。

方法 2:使用 enable() 方法

这是一个 jQuery 方法,用于启用已禁用或新创建的表单功能。创建自动完成小部件后,将在输入元素上调用 enable() 函数方法,从而启用自动完成功能。

此方法中使用的其他参数

minLength:此参数接受一个数字,该数字定义显示建议所需的字符数,默认值为 1。

delay:传递的另一个参数是延迟,它接受数字并定义显示建议所需的毫秒数。默认值为 300。

在这里,我们将使用 enable() 方法启用 autocomplete() 小部件。

算法

步骤 1:导入所需的 jQuery 脚本,创建一个带有输入占位符的基本表单并提供合适的 ID。

步骤 2:使用 enable() 方法启用自动完成功能,此方法不接受任何参数。

示例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>   

    <script>
      $(function() {
        var nameSuggestions = ['Java','Javascript',"Python",'C','C++','Web Development','Mobile Development'];
        $("#input").autocomplete({
          source: nameSuggestions,
          delay : 500,
          minLength: 0
        });
        $("#input").autocomplete("enable")
      });
    </script>

</head>
<body>
  <form  style="text-align: center;">
    <h1>Tutorials Point Courses.</h1>
    <input id="input" type="text">
  </form>
</body>
</html>

在上面的输出中,您可以看到,无需输入任何单词,所有可用的建议都会显示出来。这是因为在 autocomplete() 方法中传递了 minLength 参数。

以下是一些有用的选项

AutoFocus:接收布尔值。设置为 true 时,建议/标签数组的第一项将被聚焦。

Disabled:接收布尔值。设置为 True 时,此选项将禁用自动完成功能。

以下是一些有用的方法:

close:此方法关闭自动完成菜单。 disable:此方法禁用自动完成菜单。

enable:此方法启用自动完成菜单。

destroy:此方法完全移除自动完成功能,并将元素恢复到初始状态。

widget:此元素返回一个包含菜单元素的 jQuery 元素,该菜单会不断创建和销毁。

结论

虽然这些是基本的自动完成功能,但您始终可以通过使用 CSS 以及 autocomplete() 方法的选项和方法进行自定义来实现所需的功能。


相关文章


有用资源