自动补齐flexselect+级联下拉框案例
在开发web应用时,经常遇到类似省市区级联下拉框操作,即选中省份自动级联加载该省份所有的市,选中市自动级联加载该市所有的区;假设省市区的数据量很大,此时用户想选中某市,因而要从上往下查找,可能半天都找不到,用户体验不佳,因此引入jQuery插件–自动补齐flexselect可解决该弊端,因为该插件支持模糊检索自动补齐,可在极短时间内找到想要的结果,节省了时间又增强了用户操作速度。
自动补齐flexselect插件用法请看:http://www.tieguanyin168.com/index.php/jqueryflexselect-1505.html
以下模拟省市区级联案例,效果如下:
源码:
1、服务器端代码
public void queryCity() { String grade=this.getParameter("grade"); List<City> models = cityService.searchCitiesByPid(Integer.valueOf(grade)); if(models!=null&&models.size()>0){ //{"code":200,"data":[{"acronym":"LCQ","areaCode":"","fullName":"福建省泉州市鲤城区","grade":3,"id":1463,"isDel":0,"name":"鲤城区","pid":162,"sellQuantity":0,"signQuantity":0,"zipCode":""}, // {"acronym":"NAS","areaCode":"","fullName":"福建省泉州市南安市","grade":3,"id":1474,"isDel":0,"name":"南安市","pid":162,"sellQuantity":0,"signQuantity":0,"zipCode":""}], // "success":true} Utils.returnJson(models); } }
2、jsp代码
<div class="bg_row_out"> <div class="bg_row_out_1"> <font color="red">*</font>省:</div> <div class="bg_row_out_2 required" style="border-right: 0 none;border-bottom: 0px solid #cccccc;"> <!--从服务器获取--> <select id="provice" name="company.provice" class="newsletter_input"> <option value=""></option> <c:forEach items="${provinces}" var="provice"> <option value="${provice.id }">${provice.name }</option> </c:forEach> </select> </div> </div> <div class="bg_row_out"> <div class="bg_row_out_1"> <font color="red">*</font>市:</div> <div class="bg_row_out_2 required" style="border-right: 0 none;border-bottom: 0px solid #cccccc;"> <select id="city" name="company.city" class="newsletter_input"> <option value=""></option> </select> </div> </div> <div class="bg_row_out"> <div class="bg_row_out_1"> <font color="red">*</font>区:</div> <div class="bg_row_out_2 required" style="border-right: 0 none;border-bottom: 0px solid #cccccc;"> <select id="district" name="company.district" class="newsletter_input"> <option value=""></option> </select> </div> </div>
3、js代码
$(function(){ var district = $("#district").flexselect(); $("#provice").flexselect({callback:function(){ $.ajax( { url : "queryCity.htm", data : { "date" : new Date().getTime(), "grade" : $("#provice").val() }, dataType:"json", success : function(result) { if(result.code != 200){ alert(result.data); return; } result = result.data; var resultStr = []; for ( var i = 0; i < result.length; i++) { resultStr.push({name:result[i].name, value:result[i].id}); } city.flexselect[0].cache = resultStr; } }) } }); var city=$("#city").flexselect({callback:function(){ $.ajax( { url : "queryCity.htm", data : { "date" : new Date().getTime(), "grade" : $("#city").val() }, dataType:"json", success : function(result) { if(result.code != 200){ alert(result.data); return; } result = result.data; var resultStr = []; for ( var i = 0; i < result.length; i++) { resultStr.push({name:result[i].name, value:result[i].id}); } district.flexselect[0].cache = resultStr; } }) } }); });
分类:
jQuery
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)