利用jQuery UI中Auto-complete插件实现输入自动完成功能,大家在使用诸如淘宝、京东等电商平台搜索商品时,往往只要输入商品的一些特殊字符,就可以显示出和该字符相近的列表菜单,用户使用鼠标或者键盘方向键就可以快速选择,实现了很好的用户体验。
1.最简单的用户输入自动完成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <!doctype html> < html > < 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" > < 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 > < label for = "tags" >请输入:</ label > < input id = "tags" > </ div > </ body > </ html > |
2 使用远程数据源自动完成
Auto-complete插件不光可以实现本地数据源的自动完成,也可以读取远程的数据源,列如实现从服务器端读取数据源信息。
通过将服务器数据缓存到浏览器中,获取的数据源首先保存在cache变量中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $(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); }); } }); }); |
最后完成的效果和下面淘宝中的一样:
版权声明:
此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处:
[博客园]
https://www.cnblogs.com/summer7310/p/6394392.html
[若此文确切存在侵权,请联系本站管理员进行删除!]
--THE END--