JS.CategoryHelper 缓存级下拉框多级联动
2014-04-26 10:27
155 查看
<script type="text/javascript"> /*分类级联下拉框动态显示 Goosoz@163.com 2013-07*/ function CategoryHelper(rootId, alllist) { function proClass(json) { this.Id = json[0]; this.ParentId = json[1]; this.Name = json[2]; } var list = new Array(); for (var i = 0; i < alllist.length; i++) { var item = new proClass(alllist[i]); list.push(item); } //获取当前proClass function getProClass(id) { for (var i = 0; i < list.length; i++) { var item = list[i]; if (item.Id == id) { return item; } } return null; }; //获取父辈proClass function getParent(id) { var curItem = getProClass(id); if (curItem == null) { return null; } for (var i = 0; i < list.length; i++) { var item = list[i]; if (item.Id == curItem.ParentId) { return item; } } return null; }; //获取下级proClass function getChildrens(id) { var arr = new Array(); for (var i = 0; i < list.length; i++) { var item = list[i]; if (item.ParentId == id) { arr.push(item); } } return arr; }; function getSiblings(id) { var curItem = getProClass(id); return getChildrens(curItem == null ? rootId : curItem.ParentId); }; function getSelect(pId, id, arr) { var html = "<select class=\"sitem\" pid=\"" + pId + "\">"; html += "<option value=\"" + pId + "\" " + (rootId == id ? "selected=\"selected\"" : "") + ">--</option>"; for (var i = 0; i < arr.length; i++) { var item = arr[i]; html += "<option value=\"" + item.Id + "\" " + (item.Id == id ? "selected=\"selected\"" : "") + ">" + item.Name + "</option>"; } html += "</select>"; return html; }; //当前选中的ID this.CurID = 0; //当前选中的名称 this.CurName = null; //当前选中的名称数组 this.CurNameArray = new Array(); //获取所有Select的Html this.getHtml = function (id) { this.CurID = id; this.CurName = null; this.CurNameArray = new Array(); if (id == rootId) { var arr = getChildrens(rootId); return getSelect(rootId, rootId, arr); } else { var _cur = getProClass(id); var _childrens = getChildrens(id); var html = ""; while (_cur != null) { this.CurNameArray.push(_cur.Name); var _siblings = getSiblings(_cur.Id); html = getSelect(_cur.ParentId, _cur.Id, _siblings) + html; _cur = getProClass(_cur.ParentId); } if (_childrens.length > 0) { html += getSelect(id, rootId, _childrens); } return html; } }; } </script>
<div id="areabox"></div>
var JS_AddressJSON=[["110000","0","北京市"],["130000","0","河南省"],["210000","0","上海市"],["130100","130000","周口市"]];
var pHelper = new CategoryHelper("0",JS_AddressJSON); var pHelper_DefaultID = JS_AreaID; $("#areabox").html(pHelper.getHtml(pHelper_DefaultID)); $(document).on("change","#areabox select", function () { $("#areabox").html(pHelper.getHtml($(this).val())); }); $("#btn-nextstep").click(function () { var area = pHelper.CurID; });
相关文章推荐
- CategoryHelper 缓存级下拉框多级联动
- yii 下拉列表多级联动 dropDownList
- jquery 多级联动下拉列表含(数据模型)
- 用Ajax.net实现的一个无刷新的多级联动下拉列表框
- 多级联动,下拉列表取text及value值的两种方法(传统方法+JQuery方法)
- jQuery实现多级联动下拉列表查询框
- [多级联动下拉选择框]和[Tree to Tree]续——让他们可以设置默认值
- 多级联动下拉选择框,动态获取下一级
- JavaScript 多级联动浮动(下拉)菜单 (第二版)
- .net MVC 下拉多级联动及编辑
- 下拉列表多级联动dropDownList示例代码
- java 下拉多级联动 头像裁剪 调用摄像头 SpringMVC mybatis
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- Jquery Chained Selects Plugin 多级联动下拉框插件
- WebForm使用AngularJS实现下拉框多级联动
- 用Ajax.net实现的一个无刷新的多级联动下拉列表框
- 省市区县多级下拉联动选框[来自于网络]
- 实现多级下拉框联动获取数据
- 用Jquery实现多级下拉框无刷新的联动
- vs2008中js调用web服务实现下拉框多级联动小记