jQuery UI,简而言之,它是一个基于jQuery的前端UI框架。我们可以使用jQuery + jQuery UI非常简单方便地制作出界面美观、功能强大、跨浏览器兼容的前端html界面。

  Autocomplete,是一个功能强大的自动完成输入的jQuery插件,它也是jQuery UI的一部分。相信用过百度或者Google搜索的读者一定不会陌生,当我们在搜索框中开始输入搜索的关键字时,搜索引擎就会智能地帮我们联想并匹配我们所需的搜索关键字内容。

  一、首先了解下JQueryUI提供的重要属性

  1. autoFocus:当智能提示框出现时,是否自动选中第一项,默认为false,即不选中。  

  2. delay:在按键后执行搜索的延时,默认为300ms。

  3. disabled:是否禁用自动完成功能,默认为false。

  4. minLength:触发自动完成功能需要输入的最小字符数量。

  5. source:即为指定智能提示下拉框中的数据来源,支持三种类型。

    ① Array,主要用于本地化数据提供,支持两种格式:字符串数组 [ "Choice1", "Choice2" ]及标签和值属性的Json格式数组 [ { label: "Choice1", value: "value1" }, ... ]

    ② String,用于ajax请求的远程地址链接,返回Array或Json格式字符串。

    ③ Function,回调函数,最具有灵活性的一种方式,可用于返回任何数据源方式来实现自动完成,其中包含两个参数requestresponse通过request.term来获取用户输入的值,通过response(argument)来对获取的数据源进行显示。

  二、JQuery UI还提供了一些有用的方法

  1. close():关闭智能提示选择框。

  2. destroy():销毁智能提示选择框,将其所产生的元素完全删除,使其恢复至初始状态。

  3. disable():禁用自动完成功能。

  4. enable():开启自动完成功能。

  三、主要事件包括

  1. change(event, ui):当值改变时发生,ui.item为选中的项。

  2. close(event, ui):当智能提示框关闭时发生。

  3. create(event, ui):当智能提示框创建时发生,可以在此事件中,对外观进行一些控制。

  4. focus(event, ui):当智能提示列表任意一项获得焦点时发生,ui.item为获得焦点的项。

  5. open(event, ui):当智能提示框打开或更新时发生。

  6. response(event,ui):在搜索完成后智能提示框显示前发生,可以在此事件中对显示项进行处理

  7. search(event, ui):在开始请求之前发生,可以在此事件中返回false来取消请求。

  8. select(event, ui): 当智能提示框中任意一项被选中时发生,ui.item为选中的项。

  示例一(基于本地数据,来源于官方demo)

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="utf-8">
 5     <title>jQuery UI Autocomplete - 本地数据</title>
 6     <link rel="stylesheet" href="jquery-ui.min.css">
 7     <script src="jquery-1.9.0.min.js" type="text/javascript"></script>
 8     <script src="jquery-ui.min.js" type="text/javascript"></script>
 9     <style>
10     .ui-autocomplete {
11         max-height: 100px;
12         overflow-y: auto;
13         /* prevent horizontal scrollbar */
14         overflow-x: hidden;
15     }
16     /* IE 6 doesn't support max-height
17      * we use height instead, but this forces the menu to always be this tall
18      */
19     * html .ui-autocomplete {
20         height: 100px;
21     }
22     </style>
23 </head>
24 <body>
25 <div class="ui-widget">
26     <label for="tags">请输入: </label>
27     <input >
28 </div>
29 </body>
30 <script>
31     $(function() {
32         var availableTags = [
33             "ActionScript",
34             "AppleScript",
35             "Asp",
36             "BASIC",
37             "C",
38             "C++",
39             "Clojure",
40             "COBOL",
41             "ColdFusion",
42             "Erlang",
43             "Fortran",
44             "Groovy",
45             "Haskell",
46             "Java",
47             "JavaScript",
48             "Lisp",
49             "Perl",
50             "PHP",
51             "Python",
52             "Ruby",
53             "Scala",
54             "Scheme"
55         ];
56         $( "#tags" ).focus(function(){
57             $( "#tags" ).autocomplete({
58                 source: availableTags
59             });
60         });
61         
62     });
63     </script>
64 </html>
View Code

相关文章: