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 相关文章推荐
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
JS Loading功能的简单实现
Nov 29 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
jQuery的promise与deferred对象在异步回调中的作用
May 03 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
Aug 10 Javascript
javascript流程控制语句集合
Sep 18 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
JS canvas绘制五子棋的棋盘
May 28 Javascript
vue-cli构建vue项目的步骤详解
Jan 27 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
在vue中使用eslint,配合vscode的操作
Nov 09 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
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
JS 控制CSS样式表
2009/08/20 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
用原生js做单页应用
2017/01/17 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python 读取文件并替换字段的实例
2018/07/12 Python
python redis 删除key脚本的实例
2019/02/19 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python 解析简单的XML数据
2020/07/24 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
应届生新闻编辑求职信
2013/11/19 职场文书
应聘教师自荐书
2014/06/16 职场文书
委托证明书
2014/09/17 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
社区活动总结范文
2015/05/07 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
MySQL空间数据存储及函数
2021/09/25 MySQL
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers