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生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
关于document.cookie的使用javascript
Apr 11 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Feb 04 Javascript
Javascript变量函数浅析
Sep 02 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
基于javascript实现表格的简单操作
May 21 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
JavaScript框架Angular和React深度对比
Nov 20 Javascript
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
微信小程序 详解页面跳转与返回并回传数据
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
当海贼王变成JOJO风
2020/03/02 日漫
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
python异常和文件处理机制详解
2016/07/19 Python
Unicode和Python的中文处理
2017/03/19 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
Python netmiko模块的使用
2020/02/14 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
毕业生简单求职信
2013/11/19 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
京剧自荐信
2014/01/26 职场文书
工作表现自我评价
2014/02/08 职场文书
党员承诺书范文
2014/05/19 职场文书
食品安全承诺书
2014/05/22 职场文书
公司离职证明范本
2014/10/17 职场文书
股东协议书范本2016
2016/03/21 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
Spring Bean是如何初始化的详解
2022/03/22 Java/Android