jQuery实现用户输入自动完成功能


Posted in Javascript onFebruary 13, 2017

利用jQuery UI中Auto-complete插件实现输入自动完成功能,大家在使用诸如淘宝、京东等电商平台搜索商品时,往往只要输入商品的一些特殊字符,就可以显示出和该字符相近的列表菜单,用户使用鼠标或者键盘方向键就可以快速选择,实现了很好的用户体验。

1.最简单的用户输入自动完成

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>jQuery UI Autocomplete - Default functionality</title>
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="external nofollow" >
 <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
 <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
 <script>
 $(function() {
 //定义并初始化字典库数据源集合
 var availableTags = [
 "ActionScript",
 "AppleScript",
 "Asp",
 "BASIC",
 "C",
 "C++",
 "Clojure",
 "COBOL",
 "ColdFusion",
 "Erlang",
 "Fortran",
 "Groovy",
 "Haskell",
 "Java",
 "JavaScript",
 "Lisp",
 "Perl",
 "PHP",
 "Python",
 "Ruby",
 "Scala",
 "Scheme"
 ];
 //自动完成插件函数
 $( "#tags" ).autocomplete({
 //自动完成字典库数据源
 source: availableTags
 });
 });
 </script>
</head>
<body>
<div class="ui-widget">
 <label for="tags">请输入: </label>
 <input id="tags">
</div>
</body>
</html>

2 使用远程数据源自动完成

Auto-complete插件不光可以实现本地数据源的自动完成,也可以读取远程的数据源,列如实现从服务器端读取数据源信息。

通过将服务器数据缓存到浏览器中,获取的数据源首先保存在cache变量中。

$(function() {
 //自定义缓存变量
 var cache = {};
 //自动完成插件函数
 $("#tags").autocomplete({
 //定义用户最少输入的字符数
 minLenght: 2,
 source: function(request, response){//定义远程获取数据源函数
 var term = request.term;//定义用户请求信息变量
 if(term in cache) {//判断请求数据是否存在缓存中
 response(cache[term]);//真,从缓存中读取数据
 return;
 }
 $.getJSON('data.json', request, function(data, Status, xhr) {
 cache[term] = data.result;//缓存远程数据
 response(data.result);
 });
 }
 });
 });

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript 常用关键字列表集合
Dec 04 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
JavaScript作用域链示例分享
May 27 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
使用AngularJS 应用访问 Android 手机的图片库
Mar 24 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
Aug 26 Javascript
jquery.masonry瀑布流效果
May 25 jQuery
JS实现的计数排序与基数排序算法示例
Dec 04 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 Javascript
微信小程序实现可长按移动控件
Nov 01 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 #Javascript
微信小程序 this和that详解及简单实例
Feb 13 #Javascript
脚本div实现拖放功能(两种)
Feb 13 #Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 #Javascript
判断横屏竖屏(三种)
Feb 13 #Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 #Javascript
jQuery实现大图轮播
Feb 13 #Javascript
You might like
提取HTML标签
2006/10/09 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
如何在python中实现线性回归
2020/08/10 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
公司节能减排倡议书
2014/05/14 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
全运会口号
2014/06/20 职场文书
世界环境日活动总结
2015/02/11 职场文书
护士年终个人总结
2015/02/13 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python