news 2026/6/9 18:41:36

jQuery UI 实例 - 自动完成(Autocomplete)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery UI 实例 - 自动完成(Autocomplete)

jQuery UI Autocomplete(自动完成)实例

Autocomplete是 jQuery UI 中非常实用的组件,用于输入框提供智能建议列表,支持本地数据、远程 AJAX 数据、分类显示、自定义渲染等。常用于搜索框、标签输入、地址补全等场景。

官方演示地址:https://jqueryui.com/autocomplete/

下面提供几个渐进实例,从基础到高级,代码使用最新 CDN,可直接复制到 HTML 文件测试。

1.基础本地数据自动完成

使用数组作为数据源。

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jQuery UI Autocomplete 基础示例</title><linkrel="stylesheet"href="//code.jquery.com/ui/1.13.2/themes/smoothness/jquery-ui.css"><scriptsrc="//code.jquery.com/jquery-3.6.0.min.js"></script><scriptsrc="//code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script></head><body><label>编程语言:</label><inputid="autocomplete"><script>$(function(){varlanguages=["JavaScript","Java","Python","C++","C#","PHP","Ruby","Go","Swift","Kotlin"];$("#autocomplete").autocomplete({source:languages,minLength:2// 输入至少2个字符才触发建议});});</script></body></html>
2.带标签的对象数据 + 分类显示

使用对象数组,支持label(显示)和value(选中后填充值),并实现分类。

<script>vardata=[{label:"JavaScript",category:"前端"},{label:"HTML",category:"前端"},{label:"CSS",category:"前端"},{label:"Java",category:"后端"},{label:"Python",category:"后端"},{label:"Node.js",category:"后端"}];$("#autocomplete").autocomplete({source:data,minLength:1,// 自定义分类菜单_renderMenu:function(ul,items){varthat=this;varcurrentCategory="";$.each(items,function(index,item){if(item.category!=currentCategory){ul.append("<li class='ui-autocomplete-category'>"+item.category+"</li>");currentCategory=item.category;}that._renderItemData(ul,item);});}});</script><style>.ui-autocomplete-category{font-weight:bold;background:#eee;padding:5px;}</style>
3.自定义渲染(带图标或图片)

使用_renderItem自定义下拉项显示。

<script>$("#autocomplete").autocomplete({source:[{label:"Apple",icon:"https://via.placeholder.com/30?text=A"},{label:"Banana",icon:"https://via.placeholder.com/30?text=B"},{label:"Orange",icon:"https://via.placeholder.com/30?text=O"}]}).data("ui-autocomplete")._renderItem=function(ul,item){return$("<li>").append("<div><img src='"+item.icon+"' style='width:30px;vertical-align:middle;margin-right:10px;'>"+item.label+"</div>").appendTo(ul);};</script>
4.远程数据源(AJAX)

从服务器动态获取数据(模拟可用数据)。

<script>$("#autocomplete").autocomplete({source:function(request,response){$.ajax({url:"https://api.example.com/search",// 替换为你的APIdata:{term:request.term},success:function(data){response($.map(data,function(item){return{label:item.name,value:item.id};}));}});},minLength:2,delay:300// 延迟请求,防频繁输入});</script>
5.事件监听(select、change)
<script>$("#autocomplete").autocomplete({// ...select:function(event,ui){console.log("选中: "+ui.item.label+" (值: "+ui.item.value+")");},change:function(event,ui){if(!ui.item)console.log("未从列表中选择");}});</script>

小技巧

  • minLength: 0可实现点击输入框即显示全部建议。
  • 支持多选(Multiple values):查看官方 “Multiple, remote” 示例。
  • 移动端友好,默认支持触摸。

如果你需要多选标签输入结合 AJAX 从数据库搜索的完整后端示例,或带加载动画的版本,请告诉我更多需求!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 8:41:13

远程办公新伙伴:Linly-Talker打造全天候数字助理

远程办公新伙伴&#xff1a;Linly-Talker打造全天候数字助理 在疫情后时代&#xff0c;远程协作早已从“应急方案”变为常态。越来越多企业发现&#xff0c;光靠视频会议和即时通讯工具已不足以支撑高效沟通——信息遗漏、响应延迟、跨时区协作断裂等问题频发。有没有一种方式&…

作者头像 李华
网站建设 2026/6/8 13:31:53

BSCI:全球供应链社会责任的通行证与进阶指南

在全球化贸易融合与合规要求趋严的背景下&#xff0c;BSCI&#xff08;商业社会标准认证&#xff09;已超越道德标签&#xff0c;成为企业打通国际供应链、抵御贸易风险的核心支撑。该体系由欧洲对外贸易协会&#xff08;FTA&#xff0c;现更名amfori&#xff09;于2003年发起&…

作者头像 李华
网站建设 2026/6/8 13:31:51

基于PHP的汽车能耗优化系统设计与实现

摘 要 随着科技的发展&#xff0c;环境问题俨然成为最受关注的问题之一&#xff0c;我国正在贯彻“资源节约型,环境友好型”的发展战略&#xff0c;除我国外&#xff0c;世界各国都在为节约能源做出了相应的政策。其中新能源汽车扶持政策也是各国都重点实施的。不管是以前的…

作者头像 李华
网站建设 2026/6/8 7:13:39

数字人配音自由化:Linly-Talker允许任意声音上传克隆

数字人配音自由化&#xff1a;Linly-Talker允许任意声音上传克隆 在虚拟主播24小时不间断直播、AI客服精准回应用户咨询的今天&#xff0c;数字人早已不再是科幻电影中的概念。从企业宣传到在线教育&#xff0c;从短视频创作到无障碍沟通&#xff0c;越来越多的场景开始依赖“能…

作者头像 李华
网站建设 2026/6/9 14:50:00

毕设项目分享 深度学习YOLO番茄叶片病变识别系统(源码+论文)

文章目录0 前言1 项目运行效果2 课题背景2.1 农业现代化发展趋势2.2 农作物病害检测的重要性2.3 深度学习技术在农业领域的应用2.4 YOLO系列算法的发展与应用2.4.1 YOLO算法演进2.4.2 YOLOv8的技术特点2.5 番茄叶片病变识别的研究现状2.6 本课题的研究动机3 设计框架3.1. 系统整…

作者头像 李华