当前位置: 首页 > news >正文

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 从数据库搜索的完整后端示例,或带加载动画的版本,请告诉我更多需求!

http://www.cnnetsun.cn/news/166137.html

相关文章:

  • 【Open-AutoGLM家务提醒安排】:揭秘智能家庭任务调度背后的AI黑科技
  • Open-AutoGLM食材购买避坑指南:90%人忽略的3类关键营养匹配原则
  • Open-AutoGLM任务中断恢复实战(断点续训技术大揭秘)
  • 【Open-AutoGLM饮食热量统计】:揭秘AI自动识别食物热量的黑科技与实测效果
  • Linly-Talker如何避免‘恐怖谷效应’?外观设计心理学研究
  • 基于Spring Boot的儿童福利院管理系统的设计与实现毕业设计
  • 基于Android的网上点餐APP
  • 如何用Open-AutoGLM实现秒级故障响应?一线架构师亲授压箱底方案
  • Open-AutoGLM日志系统揭秘,掌握这6个参数才算真正入门
  • jQuery UI 实例 - 放置(Droppable)
  • 探索三相两电平光伏逆变器DC - AC部分的Simulink仿真之旅
  • 【AI推理服务稳定性提升】:基于Open-AutoGLM的后台运行配置最佳实践
  • Open-AutoGLM网络配置避坑指南(一线专家亲授12年实战经验)
  • Open-AutoGLM报错代码怎么破:从日志到修复的7步闭环流程
  • 实时交互不是梦:Linly-Talker构建高响应数字人系统
  • 从沉默到透明:Open-AutoGLM运行日志开启全流程深度解析
  • Open-AutoGLM网络调优实战:5大核心参数配置你真的懂吗?
  • Open-AutoGLM端口占用问题深度解析(专家级排错手册限时公开)
  • JSP如何设计WebUploader分片上传的交互界面?
  • Linly-Talker在光伏电站运维中的故障排查指导
  • vue3+springboot基于uniapp的二手渔具回收商城系统 钓鱼交友的微信小程序开发(编号:803442152)
  • Linly-Talker在相声贯口练习中的气息控制
  • Linly-Talker在风电场巡检中的安全规程重申
  • 设备频繁掉线怎么办,一文搞懂Open-AutoGLM连接优化的8个关键步骤
  • 【稀缺资料】Open-AutoGLM接口调用延迟降低95%的完整技术路径
  • 版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍
  • Linly-Talker在潜水探险中的装备使用说明
  • Linly-Talker在有声书朗读中的章节过渡处理
  • Linly-Talker在桥牌叫牌体系教学中的逻辑演绎
  • 网页前端如何通过Java实现分片上传的并行优化?