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 相关文章推荐
在Windows上安装Node.js模块的方法
Sep 25 Javascript
jquery表格内容筛选实现思路及代码
Apr 16 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
浅谈jQuery中ajaxPrefilter的应用
Aug 01 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
JSON 数据格式详解
2017/09/13 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python调用java的Webservice示例
2014/03/10 Python
python操作gmail实例
2015/01/14 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
施工安全协议书范本
2014/09/26 职场文书
上班迟到检讨书
2015/05/06 职场文书
解决Redis启动警告问题
2022/02/24 Redis
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL