多级关联下拉选择框的高效实现(想用“最优”的,还是不敢)

layui下拉,一级二级三级,多级联动, 省市县三级地图,三个select联动效果 基于layui实现的省市县区三级联动下拉选择器 关于layui 这里不做介绍,直戳我阅读 关于本省市区级联下拉选择器 本选择器已经将它封装成一个layui的插件,使用起来非常方便,支持一个页面中使用多个省市区选择器,并且支持选择结果回调,支持自定义lay-filter。 使用方法以及一些约定 html部分 整个选择器需要使用一个父标签包裹,如下使用了id=“area-picker”,并且分别给省、市、区的select加上province-selector、city 阅读详情

偶然看见一篇《现利用xml数据岛实现多级关联下拉选择框的做法》

思路居然和我前几天做的不谋而合。但是我觉得我的方法更简单,不需要调用XML Dom。数据下载量也要小一些。

当时做就是考虑到选项会很多,定义关联关系的数据结构要高效,过多的下载量会使用户反感。

同时,这些定义需要在服务器端动态生成,按目前的定义方法也只要用嵌套的循环输出就非常容易实现。

再有就是通用性,灵活性。和前面提到的大作都类似了。

闲话少说,书归代码:

<BODY>
<SELECT NAME="s1"><option>需要JavaScript才能正确显示</SELECT>
<SELECT NAME="s2"></SELECT>
<SELECT NAME="s3"></SELECT>
<SELECT NAME="s4"></SELECT>

<SCRIPT LANGUAGE="JavaScript">
<!--

 

//选择框的名字
selector = [ "s1", "s2", "s3", "s4" ];

 

//选择项: "名字", "值", 子选择
menu = [
"地球","1",
 [
 "中国","86",
  [
  "北京","BJ",
   [
   "--","1",null
   ],
  "四川","SC",
   [
   "成都","28",null,
   "乐山","",null,
   "攀枝花","",null,
   "自贡","",null,
   "德阳","",null,
   "绵阳","",null
   ]
  ],
 "米国","1",
  [
  "加利福尼亚","CA",
   [
   "旧金山","1",null,
   "洛杉矶","2",null
   ],
  "华盛顿","WA",
   [
   "西雅图","seattle",null
   ]
  ]
 ],
"火星","2",
 [
 "大峡谷","86",
  [
  "小山丘","BJ",
   [
   "A地区","28",null,
   "B地区","",null,
   "C地区","",null
   ]
  ]
 ]
];

 

function wizz(level)
{
 if( level == 0 )
  a = menu;
 else
 {
  str = "menu";
  for( i=0; i<level; i++ )
   str += "[" + (document.all[selector[i]].selectedIndex * 3 + 2)  + "]";
  a = eval(str);
 }
 if( a == null ) return;
 
 s = document.all[selector[level]];
 i = s.length;
 while( i > 0 ) s.options[--i] = null;
 while( i < Math.floor(a.length/3) )
  s.options[i] = Option( a[i*3], a[i++*3+1] );
 s.onchange = Function("wizz(" + (level+1) + ")");
 wizz(level+1);
}

 

wizz(0);

//-->
</SCRIPT>

 

</BODY>
</HTML>

 

我觉得效率还可以了,大家还有什么高招欢迎交流 wizz@21cn.com

Allegro PCB设计:用约束管理器高效隐藏电源地网络飞线 在高速PCB设计中,信号完整性和电源完整性是核心考量。布线阶段,工程师需要清晰规划关键信号路径,但大量电源和地网络的飞线会造成严重视觉干扰,影响布局效率。其原理在于EDA工具默认显示所有电气连接,而未区分网络优先级。通过为网络设置特定属性,可以从根本上管理其显示行为,这体现了规则驱动设计的理念。在Cadence Allegro中,利用约束管理器为电源和地网络批量设置“Not Rat”属性,能永久隐藏其飞线,且不影响电气连接和DRC检查。这一技术价值在于显著提升绘图区域视觉清晰度,让工程师聚焦于高速信号、时钟 阅读详情

相关推荐

可以放到项目中用 多选下拉列表 复选下拉列表 jquery多选列表 多选多级联动下拉列表,有demo

可以放到项目中用 mutiselect 下拉多选插件 可以放到项目中用 多选下拉列表 复选下拉列表 jquery多选列表 多选多级联动下拉列表,有demo

vue基于element-ui的Select选择器实现的动态多级联动下拉选择

demo地址 代码如下: Html <div id="app"> <el-select v-for="(arrItem,key) in selectList" :key="key" v-model="selectArr[key]" filterable placeholder="请选择" value-key="value" @change="selected" @focu...

Vincentyun 2万+

jQuery无限层级下拉框

jQuery 无限层级 下拉框 多级下拉

多级联动下拉框,前端显示

基于宿舍管理系统下,进行入住登记功能,点击新增动态查询数据库中所有楼栋,并点击相应楼栋后,动态生成楼内所有楼层,接着动态生成该层内所有宿舍。3>动态显示所有楼栋,定义 @change="createFloor()" 当改变所选楼栋后,获取该楼栋的所有层数。定义 @change="createDormList()" 方法,选择完楼层后,根据楼栋id,查询该层内所有宿舍。5>后端服务器接收请求,调用 查询相应楼栋楼层下的所有宿舍的方法。2>后端接收请求,创建相应方法动态查询数据库中所有楼栋信息。

m0_56758388的博客 731

地区多级联动下拉框XML数据读取

用XML存储地区数据,页面上使用: var Array_AreaName = ["","",""]; /// 地区值设置初始值 并在body 的onload 事件里添加:Set_AreaSelected(); <select id="ProvinceID" class="shengcity" name="ProvinceID" style="width:80px;"> <option value="" selected="selected">所在省份</option> </select> <select id="CityID" name="CityID" class="shengcity"> <option selected="selected" value="">所在地市</option> </select> <select id="AreaID" class="shengcity" name="AreaID"> <option selected="selected">市、县级市、县</option> </select> 可以在js里自定义ID值 具体使用参考js文件

SAP打印错位问题终极解决指南:LP01设备格式设置全流程

本文详细解析了SAP系统中LP01设备打印错位问题的解决方案,重点介绍了SPAD事务码的配置流程和格式设置技巧。通过精准调整输出设备、设备类型和格式类型的匹配关系,有效解决'未定义格式'错误,确保打印内容准确对齐。文章还提供了高级排查方法和预防措施,帮助SAP管理员提升打印管理效率。

weixin_29311017的博客 390

vue联级选择器拆分三个下拉框

// 挂载钩子 mounted() { // 遍历一级数据 lingdangAddressPicker.forEach(i=>{ // 追加数据 this.shengselect.push({ value: i.id, label: i.name }) }) } // 省监听 //第一个下拉框监听事件 shengbtn(vla){ // 进来每次清空 this.shiselect=[]

m0_50884068的博客 554

Unity特效序列帧输出全攻略:Recorder+Timeline保姆级教程(解决透明通道问题)

本文提供Unity特效序列帧输出的完整解决方案,重点讲解如何结合Recorder与Timeline工具,实现带透明通道的PNG序列帧高效输出。通过保姆级教程,详细解析摄像机隔离、层级设置、参数配置等关键步骤,并深度解决透明通道丢失等常见问题,帮助特效师和动画师打通引擎创作与后期合成的工作流。

tensorflowjs6的博客 429

vue使用element三级联动下拉框多选

选中高级软件和软件ui工程师之后,一级中的金融和工程也高亮了,这是因为后台返回数据的id(这里后台返回的categoryId值重复)值重复了 template <el-form-item label="职位类别:" prop="listJobCategoryDTOLIN"> <el-cascader :change-on-select="false" :props="defaultParams" :options="options" ..

weixin_51565477的博客 1992

【AIGC】人工智能训练师(高级)考试题库-橙点同学

例如,在嘈杂的环境中进行声音转文字,即使是优秀的模型也可能会出现一些错误,但这并不意味着该模型本身质量差,在其他较为理想的环境下,它可能会有很好的表现。例如,在一些语音应用和系统中,会使用SSML来实现对语音合成的精细控制,如调整语速、语调、音量等,而这些应用和系统的开发往往会遵循W3C的相关标准和框架,其中就包括SSML这一语音合成标记语言。例如,在语音识别等场景中,像“去火车站怎么走”这样的语音指令,没有其他嘈杂的背景声音或模糊不清的表述,就属于无噪音的数据,有利于系统准确地进行处理和分析。

RisunJan的博客 9921

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3459

前端数据字典最优方案讨论

数据字典是项目中常用的数据维护方式之一,其优势在于用户可以自行配置数据类型,并且在不需要更新系统的情况下,将数据下发到客户端。字典是一种数据结构,它由键值对组成,其主要特点是键与值之间是一一对应的关系。在字典中,键是唯一且无序的,而值可以重复。键通常用于在前后端之间进行数据传输或在代码中进行逻辑判断,而值则用于向用户展示相关信息。因此,字典提供了一种便捷的方式来存储和管理数据,同时确保了数据的唯一性和关联性。一种常见的实现方式是。

IT枫斗者的博客 1886

Matlab之fdesign的应用说明

fdesign 是 MATLAB 中用于数字滤波器设计的工具(属于),它提供了一种系统化的方式来定义滤波器参数并生成相应的滤波器。指定滤波器的频率、幅度等参数。例如,设计一个低通滤波器:Fs = 1000;% 采样率 (Hz)% 通带截止频率% 阻带截止频率Apass = 1;% 通带衰减 (dB)Astop = 60;% 阻带衰减 (dB)

嵌入式老牛的博客 1052

技术演进中的开发沉思-204 JavaScript:Ext JS表单

ExtJS为企业级数据录入提供了完整的解决方案,其核心在于"控件标准化、验证体系化、交互场景化"的设计理念。表单控件覆盖基础输入到复杂选择场景,内置验证与自定义验证确保数据准确性,Window弹窗和TabPanel等交互组件优化操作流程。通过分层布局、即时反馈和统一交互,实现了高效录入与数据精准的平衡。该框架的设计哲学对现代前端开发仍具指导意义,强调以用户为中心、业务为导向的技术实现方式,是企业级应用开发的典范。

你的天空阅读专栏 1156

PID、模糊PID、SkyHook、LQR、H2/H∞、ADRC等悬架控制合集

PID、模糊PID、SkyHook、LQR、H2/H∞等悬架控制合集

Mr.邹的博客 2013

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

Robot_PLC_HMI_Automation 3161

【毕业设计】SpringBoot+Vue+MySQL 宠物爱心组织管理系统平台源码+数据库+论文+部署文档

直接拿走,意外获得200多套代码,需要的滴我【毕业设计】SpringBoot+Vue+MySQL 宠物爱心组织管理系统平台源码+数据库+论文+部署文档(可提供说明文档(通过*AIGC*)

k13579_97531的博客 120

【报错解决】OpenClaw 报错 ENOENT: no such file or directory, open ‘/root/.npmrc‘:配置文件路径不存在

本文分析了OpenClaw平台在国产操作系统环境下运行时出现的ENOENT: no such file or directory, open '/root/.npmrc'错误。该问题源于容器环境中root用户的npm配置文件缺失,导致插件依赖安装失败。文章详细解释了npm配置加载机制和容器环境的特殊性,提出了四种解决方案:手动创建配置文件、写入基础配置、使用全局配置替代以及容器启动时自动初始化。最后指出该错误暴露了工程中对默认路径盲目信任的问题,强调显式声明运行环境依赖的重要性。

博客 2015

QML 基础组件专栏目录(V1)

本专栏是一个 QML (Qt Quick) 演示工程合集,包括了基础组件、动画、布局、图表、粒子系统等各个方面。每个示例的代码量都很小(通常 50~200 行),专注于演示一个知识点。没有复杂的项目结构干扰,适合从布局 & 基础示例开始,按分类逐步深入。

u011186532的专栏 725

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

从零构建展会信息管理与可视化系统:数据模型、API与前端实践

在Web全栈开发领域,数据建模与可视化是构建复杂业务系统的核心基础。其原理在于将现实世界的实体(如展会、展位、参展商)及其关系抽象为数据库表结构,并通过RESTful API提供标准化的数据接口。这种模式的技术价值在于实现了数据与表现层的分离,提升了系统的可维护性和扩展性。在工程实践中,这尤其适用于需要管理空间与时间属性的场景,例如活动排期、地图服务或资源调度平台。本文以展会信息管理为具体应用场景,深入探讨了如何设计实体关系、构建Node.js + PostgreSQL后端服务,并实现一个基于坐标映射的交互

weixin_30820077的博客 408

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Selenium自动化测试进阶:从面试题到框架设计的核心原理与实战

自动化测试是现代软件工程中保障质量与效率的关键环节,其核心在于模拟用户操作,对软件功能进行验证。其原理是通过驱动浏览器或应用,执行预设的测试脚本。这项技术的价值在于能够实现快速、可重复的回归测试,显著提升测试覆盖率和交付速度。在Web自动化领域,Selenium作为主流框架,其应用场景广泛覆盖了Web应用的功能测试、兼容性测试等。要构建稳定高效的自动化测试体系,深入理解其底层机制至关重要。例如,WebDriver遵循W3C标准,采用客户端-服务器架构,通过特定协议与浏览器驱动通信,这直接关系到脚本的稳定性和

weixin_30443747的博客 391

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

开支记账管理应用基于HarmonyOS API 24实战解析配置驱动体现在通过 Record 映射表将业务配置与逻辑代码分离,使得分类、颜色、图标等可变因素集中管理

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 118

从零开始SpringCloud Alibaba实战(52)——bootstrap-select多级联动下拉框

页面前端用的技术为bootstrap 做一个级联下拉框 效果 环境相关 bootstrap 3.3.7 jquery 3.3.1 bootstrap-select 1.13.9 数据表结构如下 -- 地址配置表(address_config) create table address_config ( option_value varchar(20) not null comment '地址编号', parent_id varchar(60) not null comment '父级编号', opt

liuerchong的博客 2196

选择结构

产生随机三位数 int random = (int) (Math.random() * 900 + 100); 产生随机一位数 int random=(int)(Math.random()*10); if结构 if(条件){ } Scanner input=new Scanner(System.in); String sex=input.next(); 字符串的比较用sex.equals(“男”); switch 结构 switch(表达式){ case(常量): break; case(常量): brea

qq_15009447的博客 246

Angular中nz-select实现两个选择框互相关联

两个选择框 一个是版本名称 一个是版本号 每一个版本都对应一个版本号,当选择其中任意一个时,另外一个都会发生变化.

m0_51935008的博客 2921

实现 cxTreeList使用复选框实现多选 自动级联选择

实现 cxTreeList使用复选框实现多选 自动级联选择 var RootNode,SonNode:TcxTreeListNode; qryRoot,qrySon:TADOQuery; cxTreeList1.Root.CheckGroupType:=ncgCheckGroup; qryRoot:=TAdoQuery.create(nil); qrySon:=

gykthh的专栏 4298
下一篇: 帮助你实现自己定制开发的网上实时电视广播系统
wizz
博客等级 码龄26年 0粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值