实现效果:



部分数据结构:


主要页面代码:

 1     <form id="form">
 2         <div id="select-class" name="typeClass">
 3             <select name="main_business_type_0"  id="class-0">
 4                 <option>请选择门类</option>
 5             </select>
 6             /
 7             <select name="main_business_type_1" id="class-1">
 8                 <option>请选择大类</option>
 9             </select>
10             /
11             <select name="main_business_type_2" id="class-2">
12                 <option>请选择中类</option>
13             </select>
14             /
15             <select name="main_business_type_3" id="class-3">
16                 <option>请选择小类</option>
17             </select>
18         </div>
19     </form>


js代码:

        $("#select-class").each(function(){var temp_html ;var oClass_0 = $(this).find("#class-0")//门类var oClass_1 = $(this).find("#class-1")//大类var oClass_2 = $(this).find("#class-2")//中类var oClass_3 = $(this).find("#class-3")//小类var class_0_key_array = [] ;//门类键名组成的数组var class_1_key_array = [] ;//大类键名组成的数组var class_2_key_array = [] ;//中类键名组成的数组var class_0_selected_index = 0 ;var class_1_selected_index = 0 ;var class_2_selected_index = 0//初始化门类var class_0_init = function(){class_0_key_array = [] ;//初始化门类键名组成的数组$.each(classJson , function(key,value){class_0_key_array.push(key) ;temp_html += "<option value='"+value.trade_name+"'>"+value.trade_name+"</option>";});//渲染门类
                oClass_0.html(temp_html);//渲染完成后清空temp_htmltemp_html = "";//当门类被选择并初始化后,初始化大类
                class_1_init(class_0_key_array) ;};//初始化大类var class_1_init = function(class_0_key_array){//初始化大类键名组成的数组class_1_key_array = [] ;                //判断由上级往下传的key_array长度是否为0if (class_0_key_array.length != 0) {//若key_array长度为0,则说明无需渲染此节点及更深节点,直接往下传空array//若key_array长度不为0,则继续渲染class_0_selected_index = oClass_0.get(0).selectedIndex;//选了第几个$.each(classJson[class_0_key_array[class_0_selected_index]].children , function(key,value){class_1_key_array.push(key) ;temp_html += "<option value='"+value.trade_name+"'>"+value.trade_name+"</option>";});}//渲染大类
                oClass_1.html(temp_html) ;//渲染完成后清空temp_htmltemp_html = "";//当大类被选择并初始化后,初始化中类
                class_2_init(class_1_key_array) ;};//初始化中类var class_2_init = function (class_1_key_array){//初始化中类键名组成的数组class_2_key_array = [] ;//判断由上级往下传的key_array长度是否为0if (class_1_key_array.length != 0) {//若key_array长度为0,则说明无需渲染此节点及更深节点,直接往下传空array//若key_array长度不为0,则继续渲染class_1_selected_index = oClass_1.get(0).selectedIndex ;//选择了第几个$.each(classJson[class_0_key_array[class_0_selected_index]].children[class_1_key_array[class_1_selected_index]].children , function(key,value){class_2_key_array.push(key) ;temp_html += "<option value='"+value.trade_name+"'>"+value.trade_name+"</option>";});}//渲染中类
                oClass_2.html(temp_html);//渲染完成后清空temp_htmltemp_html = "";//当中类被选择并初始化后,初始化小类
                class_3_init(class_2_key_array) ;};//初始化小类var class_3_init = function(class_2_key_array){//初始化小类键名组成的数组class_3_key_array = [] ;//判断由上级往下传的key_array长度是否为0if (class_2_key_array.length != 0) {//若key_array长度为0,则说明无需渲染此节点及更深节点,直接往下传空array//若key_array长度不为0,则继续渲染//捕获选中的中类位置class_2_selected_index = oClass_2.get(0).selectedIndex ;$.each(classJson[class_0_key_array[class_0_selected_index]].children[class_1_key_array[class_1_selected_index]].children[class_2_key_array[class_2_selected_index]].children , function(key , value){class_3_key_array.push(key) ;temp_html += "<option value='"+value.trade_name+"'>"+value.trade_name+"</option>";                    });}//渲染小类
                oClass_3.html(temp_html);//渲染完成后清空temp_htmltemp_html = "" ;//遍历完成,end
}//改变门类的时候联动大类oClass_0.change(function(){class_1_init(class_0_key_array);});//改动大类的时候联动中类oClass_1.change(function(){class_2_init(class_1_key_array);});//改变中类的时候联动小类oClass_2.change(function(){class_3_init(class_2_key_array);})class_0_init();});

转载于:https://www.cnblogs.com/maoguy/p/7774445.html

前端实现行业分类四级联动选择表单相关推荐

  1. html 表单自动数值,web前端学习技术之对HTML5 智能表单的理解

    原标题:web前端学习技术之对HTML5 智能表单的理解 Html5新增input的form属性,用于指向特定form表单的id,实现input无需放在form标签之中,即可通过表单进行提交. - t ...

  2. BCSP-玄子前端开发之JavaScript+jQuery入门CH13_表单校验

    BCSP-玄子前端开发之JavaScript+jQuery入门CH13_表单校验 4.13 表单验证 4.13.1 为什么要表单验证 保证输入的数据符合要求 减轻服务器的压力 [外链图片转存失败,源站 ...

  3. 前端HTML+JS实现四级联动

    第一次写博客,为了更好的记录自己做项目遇到的问题和解决方法. 最近在做一个项目,其中一个功能需要实现四级联动.联动功能是一个比较常用的功能,实现的方式有很多,下面分享一个比较清晰简单的方法. 实现效果 ...

  4. 一 前端基础,http协议,form表单

    一,web服务的本质: 浏览器中敲入网站回车发生的几件事? 1.游览器向服务端发送请求 2.服务端接受请求 3.服务端返回相应的响应 4.浏览器接受响应 根据特定的规则渲染页面展示给用户看 二: HT ...

  5. python选择表单_如何使用Python在表单中选择选项?

    下面是一些基本用法示例:>>> import mechanize >>> br = mechanize.Browser() >>> br.open ...

  6. 前端请求进化之路--从form表单到JSONP

    简单梳理前端请求的变迁史,着重对JSONP进行整理 请求演变 使用form表单提交请求,缺点是每次提交必定会刷新页面 在1基础之上使用iframe进行局部刷新,用户体验得到一定优化 动态创建图片提交请 ...

  7. 前端框架Vue(11)——Vue+表单验证 VeeValidate 实践

    这次来讲一下表单验证插件 VeeValidate,那为什么要结合 Vue 来讲呢?来看一下 github 上的图片就明白了! 为 Vue 而来的!不清楚是不是 Vue 的官方表单验证插件. 废话不多说 ...

  8. (crm笔记2-2)在前端页面输出后台查询出的表单数据

    在前端页面输出后台查询出的表单数据/ 1.需求 在后台查询到的数据,需要传到前端的jsp页面中进行显示. 实现效果如下: 2.思路 1)前端点击事件, 触发事件, 调用Action 中的方法, 方法调 ...

  9. 前端之HTML列表、表格及表单

    文章目录 1.表格 table 1.1.创建表格 1.2.表格属性 1.3.表头单元格标签th 1.4.表格标题caption 1.5.合并单元格 1.5.1.合并单元格2种方式 1.5.2.合并单元 ...

  10. 重生之我是前端小白(之路径与表格表单)

    上一世,我的亲人离我而去,这一世,我要把我失去的都拿回来!学习完这个知识聆听我的复仇- 4.相对路径和绝对路径 绝对路径就像是门牌号一样,永远不会变的,不会因为你坐在的位置改变而进行改变.就像是一个找 ...

最新文章

  1. 上机实践 1 初识 Java
  2. 百融金服榕树_百融金服榕树成为拉动新金融行业增长的主力军
  3. HDU 1565 方格取数(1) ——插头DP
  4. WPF error: does not contain a static 'Main' method suitable for an entry point
  5. 论文笔记:CycleGAN
  6. 高中数学40分怎么办_高二数学不会,准高三该怎么办?40分到高考140如何逆袭?...
  7. Easy-mock让团队协作效率提高不止一点点
  8. android 启动白屏_从细节入手改善用户体验,Flutter跨平台App开发中设置Android和iOS的启动页
  9. dubbo入门之微服务客户端服务端配置
  10. 我国网络贸易组织新发展
  11. VSCode Latex Workshop 设置 XeLatex 编译
  12. 计算机操作系统面试题库和答案
  13. 用python处理mp4与gif格式互转,简单到爆!
  14. Excel表格之道 学习笔记(四)
  15. 上海博物馆——古代的邂逅
  16. su: 无法设置组: 不允许的操作
  17. java虚拟机系列:java虚拟机内存模型
  18. 计算机硬件检测标准模板,计算机硬件性能检测相关实验模板.doc
  19. iOS-直播的推流与拉流框架
  20. Android 获取手机第三方应用列表

热门文章

  1. 微服务架构:统一身份认证和授权技术解决方案
  2. linux内核源码多大,需要多久才能看完linux内核源码?
  3. pycharm下的xlwings+VBA混合编程注意事项
  4. 深入.NET 青鸟影院系统
  5. 信息系统项目管理师(2022年)—— 重点内容:信息化和信息系统(1)
  6. 微信小程序购物车功能实现(干货满满)
  7. DB9接口公头母头引脚区别
  8. OpenGL超级宝典(第7版)笔记1 清单的初始环境配置part1
  9. JAVA实用教程(第六版)——期末复习1
  10. SQL Server 2016安装指南——针对“Microsoft R Open和Microsoft R Serve”提供解决经验