jQuery 入门教程(23): jQuery UI Autocomplete示例(一)

2023-11-17



AutoComplete 在获取焦点后,随着用户键入的内容,可以在预订的数据源中查找和已输入的内容相匹配的内容列表供用户选择。
这可以用作之前输入过的内容也可以用作自动填充相关内容,比如根据城市名,自动填充邮编等。
你可以使用本地数据源或是远程数据源,本地数据一般使用小数据集合,比如包含50条记录的通讯录,远程数据源一般为保护大量记录的数据库。
基本用法
本例为使用AutoComplete的基本用法,通过本地数据源(数组)定义一组语言列表,用户输入字母后,包含该字母的语言会作为列表显示出来:

1 <!doctype html>
2 <html lang="en">
3 <head>
4     <meta charset="utf-8" />
5     <title>jQuery UI Demos</title>
6     <link rel="stylesheet" href="themes/trontastic/jquery-ui.css" />
7     <script src="scripts/jquery-1.9.1.js"></script>
8     <script src="scripts/jquery-ui-1.10.1.custom.js"></script>
9  
10     <script>
11         $(function () {
12             var availableTags = [
13               "ActionScript",
14               "AppleScript",
15               "Asp",
16               "BASIC",
17               "C",
18               "C++",
19               "Clojure",
20               "COBOL",
21               "ColdFusion",
22               "Erlang",
23               "Fortran",
24               "Groovy",
25               "Haskell",
26               "Java",
27               "JavaScript",
28               "Lisp",
29               "Perl",
30               "PHP",
31               "Python",
32               "Ruby",
33               "Scala",
34               "Scheme"
35             ];
36             $("#tags").autocomplete({
37                 source: availableTags
38             });
39         });
40     </script>
41 </head>
42 <body>
43     <div class="ui-widget">
44         <label for="tags">Tags: </label>
45         <input id="tags" />
46     </div>
47 </body>
48 </html>

20130316001

语调支持
某些语言支持语调字符,比如Jörn 中的ö,希望在输入o时,也能显示包含ö的内容,AutoComplete支持使用function来定义Source属性:

1 <!doctype html>
2 <html lang="en">
3 <head>
4     <meta charset="utf-8" />
5     <title>jQuery UI Demos</title>
6     <link rel="stylesheet" href="themes/trontastic/jquery-ui.css" />
7     <script src="scripts/jquery-1.9.1.js"></script>
8     <script src="scripts/jquery-ui-1.10.1.custom.js"></script>
9  
10     <script>
11         $(function () {
12             var names = ["Jörn Zaefferer",
13                 "Scott González",
14                 "John Resig"];
15  
16             var accentMap = {
17                 "á": "a",
18                 "ö": "o"
19             };
20             var normalize = function (term) {
21                 var ret = "";
22                 for (var i = 0; i < term.length; i++) {
23                     ret += accentMap[term.charAt(i)]
24                         || term.charAt(i);
25                 }
26                 return ret;
27             };
28  
29             $("#developer").autocomplete({
30                 source: function (request, response) {
31                     var matcher
32                         new RegExp($.ui.autocomplete
33                             .escapeRegex(request.term),"i");
34                     response($.grep(names, function (value) {
35                         value = value.label
36                             || value.value
37                             || value;
38                         return matcher.test(value)
39                             || matcher.test(normalize(value));
40                     }));
41                 }
42             });
43         });
44     </script>
45 </head>
46 <body>
47     <div class="ui-widget">
48         <form>
49             <label for="developer">Developer: </label>
50             <input id="developer" />
51         </form>
52     </div>
53 </body>
54 </html>

20130316002

分类支持
本例是提供简单扩展AutoComplete 组件实现了一个自定义的custom.catcomplete UI组件以支持AutoComplete的分类支持。自定义组件有兴趣的可以参见jQuery 的Widget Factory。一般无需自定义UI组件,如果需要,可以在网站查找是否有人已经实现你需要的UI组件,实在不行才自定义UI组件,使用Widget Factory自定义组件的方法并不十分直观(这是因为JavaScript使用了面向“原型”的面向对象方法,而非通常的使用类的面向对象方法)。

1 <!doctype html>
2 <html lang="en">
3 <head>
4     <meta charset="utf-8" />
5     <title>jQuery UI Demos</title>
6     <link rel="stylesheet" href="themes/trontastic/jquery-ui.css" />
7     <script src="scripts/jquery-1.9.1.js"></script>
8     <script src="scripts/jquery-ui-1.10.1.custom.js"></script>
9  
10     <style>
11         .ui-autocomplete-category {
12             font-weight: bold;
13             padding: .2em .4em;
14             margin: .8em 0 .2em;
15             line-height: 1.5;
16         }
17     </style>
18     <script>
19         $.widget("custom.catcomplete", $.ui.autocomplete, {
20             _renderMenu: function (ul, items) {
21                 var that = this,
22                   currentCategory = "";
23                 $.each(items, function (index, item) {
24                     if (item.category != currentCategory) {
25                         ul.append("<li class='ui-autocomplete-category'>"
26                             + item.category + "</li>");
27                         currentCategory = item.category;
28                     }
29                     that._renderItemData(ul, item);
30                 });
31             }
32         });
33     </script>
34     <script>
35         $(function () {
36             var data = [
37               { label: "anders", category: "" },
38               { label: "andreas", category: "" },
39               { label: "antal", category: "" },
40               { label: "annhhx10", category: "Products" },
41               { label: "annk K12", category: "Products" },
42               { label: "annttop C13", category: "Products" },
43               { label: "anders andersson", category: "People" },
44               { label: "andreas andersson", category: "People" },
45               { label: "andreas johnson", category: "People" }
46             ];
47  
48             $("#search").catcomplete({
49                 delay: 0,
50                 source: data
51             });
52         });
53     </script>
54 </head>
55 <body>
56     <label for="search">Search: </label>
57     <input id="search" />
58 </body>
59 </html>

其中custom.catcomplete为自定义的UI组件,因此$( “#search” ).catcomplete 使用catcomplete ,而非autocomplete。
20130316003

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 入门教程(23): jQuery UI Autocomplete示例(一) 的相关文章

  • charge用法

    I mean I can stop charging anytime I want 老友记 第一季 第一集 我的意思是 我可以随时忍住挥霍 及物动词 vt 1 索价 对 索费 课 税 O1 for This store often char
  • socket超时设置 之 ioctlsocket 函数全面解析

    先看看MSDN标准解释 int ioctlsocket SOCKET s long cmd u long FAR argp Parameters s in Descriptor identifying a socket cmd in Com
  • SVN客户端安装及使用

    SVN客户端安装及使用 安装svn客户端 svn常用命令 将指定仓库checkout到当前目录 添加指定文件 添加所有文件 提交文件 更新文件 更新当前目录所有文件 更新指定文件 删除文件 查看修改记录 查看当前目录的修改记录 查看某个文件
  • 车险保单在线OCR识别,字段很全,可以可以

    快瞳科技 车险保单识别 在线测试后发现 保险公司名称 保单号或者合同号 总保费 保险期间 业务类型 车型保单类型 保单名称 被保人信息 被保险人 被保人姓名 被保人证件号码 被保人电话号码 被保人联系地址 车辆信息 车牌 车辆种类 车辆使用
  • 二分查找4 - 搜索旋转排序数组

    搜索旋转数组 1 题目 整数数组 nums 按升序排列 数组中的值 互不相同 在传递给函数之前 nums 在预先未知的某个下标 k 0 lt k lt nums length 上进行了 旋转 使数组变为 nums k nums k 1 nu
  • 秒天秒地!黑马王炸学科,均薪18k+,最高42000元!

    掌握AI的同学 握住了高薪密码 黑马北京校区人工智能开发 16 班的就业炸了 毕业仅 7 个工作日 班级就业率便达到 65 班级均薪高达 18340 9 元 最高薪资更是冲到了 42k 班级就业详情数据 滑动沾高薪喜气 看完这无敌的就业喜报

随机推荐

  • Three.js使用OrbitControls后修改相机旋转方向无效

    1 问题复现 在项目中添加了OrbitControls控制器来控制相机的旋转和平移 但是需要修改初始的相机角度 于是我把相机的角度进行修改 如下 const camera new THREE PerspectiveCamera 75 vie
  • linux nginx 配置

    http blog csdn net Colton Null article details 78439174 locationNum 8 fps 1 之前发布过一篇如何在Tomcat中配置二级域名 现在发现几个月前的我太年轻了 哎 过几个
  • Leetcode算法——63、不重复路径II(unique paths II)

    一个机器人位于一个m n的网格的左上角 它每次只能向下或向右移动一格 它试图到达网格的右下角 网格中有一些障碍物 机器人不能通过 求有多少种不重复的路径 备注 1 m 和 n 都不大于 100 2 障碍物和空地分别被标为 1 和 0 示例
  • 如何开发一个小程序游戏?

    小程序游戏开发需要开发人员具备以下几点能力 有一定的编程基础 例如 JavaScript TypeScript 至少熟悉一种游戏开发引擎 比如 Cocos Unity等 对游戏机制 游戏系统有一定的理解 有一定的 UI 界面审美 能够开脑洞
  • 字典树Trie和三叉搜索树Ternary Tree的学习总结

    字典树Trie和三叉搜索树Ternary Tree的学习总结 出处 西西整理 作者 西西 日期 2012 12 31 2 39 04 大 中 小 评论 0 我要发表看法 Trie树 又称字典树 单词查找树或者前缀树 是一种用于快速检索的多叉
  • 第38讲 Android Camera2 API 通过CropRegion控制Zoom缩放

    本讲是Android Camera专题系列的第38讲 我们介绍Android Camera2 API专题的通过CropRegion控制Zoom缩放 包括如下内容 Android Zoom简介 如何查询当前Camera支持的Zoom能力 通过
  • pycharm中from,import文件/模块出现问题(最全方法)

    1 引用本地文件 如上图所示 在pycharm中可能会出现引用 本地项目文件夹中的 py文件出现问题的时候 这时我们需要考虑是否是IDE环境未将项目路径设置到引用环境变量中 有一下几种方法可以解决 1 这时可以通过sys path inse
  • iOS开源系列——OC框架排名列表

    Objective C框架排名 快点我
  • PRD文档范例,产品经理值得收藏的写作手册

    2015年 我写了一篇梳理PRD的文章 PRD到底该怎么写 获得3 5万次阅读 423次收藏 至今已过去5年 在这5年里 我一直从事产品产品相关的工作 也经历过一次完整的创业 对PRD又有了一些新的思考 这篇文章是 PRD怎么写 的升级版
  • 软件测试方法——静态测试与动态测试

    从测试方法的角度可以分为手工测试和自动化测试 1 静态测试 所谓静态测试 static testing 就是不实际运行被测软件 而只是静态地检查程序代码 界面或文档中可能存在的错误的过程 从概念中我们可以知道 其包括对代码测试 界面测试和文
  • Python re.match函数的使用详解

    正则表达式是用于匹配和操作文本的强大工具 在Python中 re模块提供了一组函数来处理正则表达式 其中 re match函数用于尝试从字符串的起始位置匹配一个模式 本文将详细介绍re match函数的使用方法 并提供相应的源代码示例 re
  • MiniDump不生成或者生成0字节

    今天在使用C写一个Windows多线程程序时 发现退出过程中有段错误 为了方便快速的定位问题 我使用了MiniDump MiniDump c源码如下 include
  • 2021年系统集成项目管理工程师(软考中级)连夜整理考前重点

    一 信息与信息化 1 信息论奠基者香农认为 信息就是能够用来消除不确定性的东西 8种状态需要3位比特表示 5位比特则可表示64种状态 信息 物质材料 能源是三大戓略资源 2 信息论两个层次 本体论和认识论 3 信息传输模型 信源 编码 信道
  • Qt鼠标单击与长按

    在Qt中 可以通过重载QWidget的mousePressEvent mouseReleaseEvent 和mouseMoveEvent 等事件来实现对鼠标事件的处理 判断鼠标是长按还是点击 可以通过记录鼠标按下的时间和释放的时间 通过两个
  • 15.DDT+unittest+excel ddt框架结合单元测试

    Excel读取数据的三种方式 1 一次性读取所有的数据 对内存的要求高点 必须掌握 2 需要用的时候读取所有的数据 就是磁盘读写要求高点 磁盘 速度最低 内存 速度中间 CPU 速度最高 3 使用DDT进行参数化 方法一 一次性读取所有的数
  • 缓存相关

    缓存雪崩怎么解决 如果缓存因为某个原因不可用 导致大量请求涌向数据库 可能会导致数据库崩溃 缓存雪崩目前主要有两种方案 1 使用集群 集群部署缓存 当一台宕机时 其他机器仍能提供缓存服务 2 Hystrix 熔断器 起到熔断 降级 限流三个
  • 文章内容无法复制复制不了

    一些文档 什么的复制不了 主要有几种方法 目录 1 禁用js 2 ctrl P打印 3 选中要复制的内容 gt 拖到网址输入框 另外 通过一些浏览器插件 感觉用处不大 1 禁用js 优点 可以直接复制原有段落文字的格式 缺点 有点麻烦 对百
  • 通俗理解三大范式

    关系型数据库中我们用的最多的就是第一范式 1NF 第二范式 2NF 第三范式 3NF 所以需要我们深入理解三大范式 第一范式 1NF 要求数据库的每一列都是不可分割的原子数据项 在上面的表中 家庭信息 和 学校信息 列均不满足原子性的要求
  • Windows下C语言操作硬件设备的方法

    本文作者 Fezl 本文原地址 http blog csdn net u010147522 article details 49912221 之前都是在linux下操作硬件设备 open read write ioctl 相当方便 最近要检
  • jQuery 入门教程(23): jQuery UI Autocomplete示例(一)

    AutoComplete 在获取焦点后 随着用户键入的内容 可以在预订的数据源中查找和已输入的内容相匹配的内容列表供用户选择 这可以用作之前输入过的内容也可以用作自动填充相关内容 比如根据城市名 自动填充邮编等 你可以使用本地数据源或是远程