前端实现行业分类四级联动选择表单
2017-11-02 20:51
351 查看
实现效果:
部分数据结构:
主要页面代码:
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_html temp_html = ""; //当门类被选择并初始化后,初始化大类 class_1_init(class_0_key_array) ; }; //初始化大类 var class_1_init = function(class_0_key_array){ //初始化大类键名组成的数组 class_1_key_array = [] ; //判断由上级往下传的key_array长度是否为0 if (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_html temp_html = ""; //当大类被选择并初始化后,初始化中类 class_2_init(class_1_key_array) ; }; //初始化中类 var class_2_init = function (class_1_key_array){ //初始化中类键名组成的数组 class_2_key_array = [] ; //判断由上级往下传的key_array长度是否为0 if (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_html temp_html = ""; //当中类被选择并初始化后,初始化小类 class_3_init(class_2_key_array) ; }; //初始化小类 var class_3_init = function(class_2_key_array){ //初始化小类键名组成的数组 class_3_key_array = [] ; //判断由上级往下传的key_array长度是否为0 if (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_html temp_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(); });
相关文章推荐
- 无限级联动下拉框地区分类选择的实现--超傻瓜,超弱智式
- VUE2 前端实现 静态二级省市联动选择select
- 用回调实现的省市县区四级下拉选择联动的例子
- JQury实现二级联动和<select>分类选择移动
- JQury实现二级联动和<select>分类选择移动
- VUE2 前端实现 静态二级省市联动选择select的示例
- JSON+HTML实现国家省市联动选择效果
- Android两级联动实现选择性别
- Android 中实现省市区的联动,在收货地址选择中用到
- js实现全国三级城市联动select选择
- java实现文本分类中卡方特征选择
- Java JSP前端页面属性-表单类型分类
- JS+CSS实现分类动态选择及移动功能效果代码
- Ajax+php实现商品分类三级联动
- JQuery/JS实现的三级联动选择
- <web前端>当背景图片为渐变色图片时,为避免浏览器大小问题,可以选择使用<CSS>实现渐变色,教程如下
- 基于javascript实现全国省市二级联动下拉选择菜单
- ListBox控件显示分类如何实现三级联动
- 织梦自定义表单用js代替联动地区解决联动地区选择问题
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序