📜  jQuery UI 自动完成创建事件(1)

📅  最后修改于: 2023-12-03 15:32:11.673000             🧑  作者: Mango

使用jQuery UI自动完成创建事件

简介

jQuery UI自动完成是一个非常强大的插件,它提供了一种自动填充用户在输入框中键入的值的方法。该插件不仅可以改善用户体验,还可以大大减少数据输入中的错误甚至可以提高网站的搜索效率。

本篇文章将向您介绍如何使用jQuery UI自动完成创建事件。

必备条件

在开始本教程之前,您需要在相应的网页上引入jQuery和jQuery UI库。

<!-- 引入jQuery -->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<!-- 引入jQuery UI -->
<script src="https://cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.js"></script>

<!-- 引入jQuery UI的CSS样式 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.css">
创建自动完成事件

创建自动完成事件非常简单,只需要使用一个JQuery的选择器并通过autocomplete()函数使用即可。

以下是一个简单的输入框,并以JavaScript代码的形式为其创建了一个自动填充事件:

<!DOCTYPE html>
<html>
<head>
    <!-- 引入资源 -->
    <link rel="stylesheet" href="https://cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.css">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
    <input type="text" id="city" placeholder="输入城市名">
    <script>
        $(function(){
            //在页面加载完成后执行以下代码
            $("#city").autocomplete({ source: ["北京", "上海", "广州", "深圳"] });
        });
    </script>
</body>
</html>

在上述代码中,输入框的id为city,使用autocomplete()函数创建了一个自动填充事件,并且使用一个字符串数组作为source参数,以告诉jQuery UI使用哪些值。

source选项

source选项定义了一个下拉列表,并向其提供要显示的值。该选项支持三种类型的值:

  1. 一个字符串数组:使用字符串数组作为数据源;
  2. 一个函数:使用函数返回一个字符串数组;
  3. 一个URL路径:使用AJAX请求从指定的URL路径中获取一个字符串数组。

以下是使用函数返回字符串数组的示例代码:

...
<script>
    $(function(){
        //函数返回一个数组
        var citys = [
            { value: "Beijing", label: "北京" },
            { value: "Shanghai", label: "上海" },
            { value: "Guangzhou", label: "广州" },
            { value: "Shenzhen", label: "深圳" },
            { value: "Hangzhou", label: "杭州" },
            { value: "Chengdu", label: "成都" },
            { value: "Nanjing", label: "南京" },
            { value: "Suzhou", label: "苏州" }
        ];
        $("#city").autocomplete({
            source: function(req, resp) {
                var re = $.ui.autocomplete.escapeRegex(req.term);
                var matcher = new RegExp("^" + re, "i");
                var a = $.grep(citys, function (item,index) {
                    return matcher.test(item.label);
                });
                resp(a);                                
            },
            minLength:2,
            delay: 300
        });
    });
</script>
...

在上述代码中,我们创建了一个包含键和值的对象数组,然后进行一个过滤,最后使用grep()函数来筛选出匹配的项目。在使用这种方式时,您还需要设置minLength和delay属性,以分别设置最小输入字符和响应时间。

conclusion

以上所述是jQuery UI自动完成创建事件的说明,通过本文的介绍,相信您已经掌握了如何在网页上使用jQuery UI自动完成创建事件的方法。