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 相关文章推荐
splice slice区别
Oct 09 Javascript
jquery 新手学习常见问题解决方法
Apr 18 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 Javascript
layui使用label标签的方法
Sep 14 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 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
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
二招解决php乱码问题
2012/03/25 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
Symfony生成二维码的方法
2016/02/04 PHP
详解php实现页面静态化原理
2017/06/21 PHP
dojo 之基础篇
2007/03/24 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
Python关于反射的实例代码分享
2020/02/20 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
物流创业计划书
2014/02/01 职场文书
网络信息安全承诺书
2014/03/26 职场文书
《鲸》教学反思
2016/02/23 职场文书