amazeUI 地区选择器三级联动问题解决,带地区数据

简介: <div id="area_box"> <select data-am-selected="{maxHeight:200,btnWidth:'120px'}" placeholder="请选择省" id="province"> .

2018年5月25号

直接上代码

        <div id="area_box">
            <select data-am-selected="{maxHeight:200,btnWidth:'120px'}" placeholder="请选择省" id="province">
                <option value=""></option>
            </select>
            <select data-am-selected="{maxHeight:200,btnWidth:'120px'}" placeholder="请选择市" id="city">
                <option value=""></option>
            </select>
            <select data-am-selected="{maxHeight:200,btnWidth:'120px'}" placeholder="请选择区/县" id="area">
                <option value=""></option>
            </select>
        </div>
        <button class="weui-vcode-btn" id="send">下一步</button>
        +$(function() {
            var $province_value, $city_value, $area_value, $areas_code;
            $areas_code = 0;
            $('#area_box div:nth-child(4)').attr('class', 'am-selected am-dropdown hide');
            $('#area_box div:nth-child(6)').attr('class', 'am-selected am-dropdown hide');
            var $province = $('#province');
            var $province_length = areas.length;
            for(var i = 0; i < $province_length; i++) {
                var $option = $('<option value="' + i + '">' + areas[i].name + '</option>');
                $option.appendTo($province);
            }
            $('body').on('click', '#area_box>div:nth-child(2) li', function() {
                $province_value = $(this).attr('data-value');
                var $province_selected = $(this).children().html();
                var $city_length = areas[$province_value].sub.length;
                $('#area_box>div:nth-child(2) .am-selected-status').html($province_selected);
                $('#city').html('<option value=""></option>');
                $('#area').html('<option value=""></option>');
                for(var j = 0; j < $city_length; j++) {
                    var $option = $('<option value="' + j + '">' + areas[$province_value].sub[j].name + '</option>');
                    $option.appendTo($('#city'));
                }
                $('#area_box>div:nth-child(4)').attr('class', 'am-selected am-dropdown');
                $('#area_box>div:nth-child(6)').attr('class', 'am-selected am-dropdown hide');
                $areas_code = 1;
            });
            $('body').on('click', '#area_box>div:nth-child(4) li', function() {
                $city_value = $(this).attr('data-value');
                var $city_selected = $(this).children().html();
                var $area_length = areas[$province_value].sub[$city_value].sub.length;
                $('#area_box>div:nth-child(4) .am-selected-status').html($city_selected);
                $('#area').html('<option value=""></option>');
                for(var k = 0; k < $area_length; k++) {
                    var $option = $('<option value="' + k + '">' + areas[$province_value].sub[$city_value].sub[k].name + '</option>');
                    $option.appendTo($('#area'));
                }
                $('#area_box>div:nth-child(6)').attr('class', 'am-selected am-dropdown');
                $areas_code = 2;
            });
            $('body').on('click', '#area_box>div:nth-child(6) li', function() {
                $area_value = $(this).attr('data-value');
                var $area_selected = $(this).children().html();
                $('#area_box>div:nth-child(6) .am-selected-status').html($area_selected);
                $areas_code = [$province_value, $city_value, $area_value];
            });
            $('#send').click(function() {
                if($areas_code == 0) {
                    console.log('请选择省');
                } else if($areas_code == 1) {
                    console.log('请选择市');
                } else if($areas_code == 2) {
                    console.log('请选择区/县');
                }
            });
        });

地区数据满足以下格式
查看所有数据

var areas = [{
    "name": "北京",
    "code": "110000",
    "sub": [{
        "name": "北京市",
        "code": "110000",
        "sub": [{
            "name": "东城区",
            "code": "110101"
        }, {
            "name": "西城区",
            "code": "110102"
        }, {
            "name": "朝阳区",
            "code": "110105"
        }, {
            "name": "丰台区",
            "code": "110106"
        }, {
            "name": "石景山区",
            "code": "110107"
        }, {
            "name": "海淀区",
            "code": "110108"
        }, {
            "name": "门头沟区",
            "code": "110109"
        }, {
            "name": "房山区",
            "code": "110111"
        }, {
            "name": "通州区",
            "code": "110112"
        }, {
            "name": "顺义区",
            "code": "110113"
        }, {
            "name": "昌平区",
            "code": "110114"
        }, {
            "name": "大兴区",
            "code": "110115"
        }, {
            "name": "怀柔区",
            "code": "110116"
        }, {
            "name": "平谷区",
            "code": "110117"
        }, {
            "name": "密云县",
            "code": "110228"
        }, {
            "name": "延庆县",
            "code": "110229"
        }]
    }]
}, {
    "name": "天津",
    "code": "120000",
    "sub": [{
        "name": "天津市",
        "code": "120000",
        "sub": [{
            "name": "和平区",
            "code": "120101"
        }, {
            "name": "河东区",
            "code": "120102"
        }, {
            "name": "河西区",
            "code": "120103"
        }, {
            "name": "南开区",
            "code": "120104"
        }, {
            "name": "河北区",
            "code": "120105"
        }, {
            "name": "红桥区",
            "code": "120106"
        }, {
            "name": "东丽区",
            "code": "120110"
        }, {
            "name": "西青区",
            "code": "120111"
        }, {
            "name": "津南区",
            "code": "120112"
        }, {
            "name": "北辰区",
            "code": "120113"
        }, {
            "name": "武清区",
            "code": "120114"
        }, {
            "name": "宝坻区",
            "code": "120115"
        }, {
            "name": "滨海新区",
            "code": "120116"
        }, {
            "name": "宁河县",
            "code": "120221"
        }, {
            "name": "静海县",
            "code": "120223"
        }, {
            "name": "蓟县",
            "code": "120225"
        }]
    }]
}];
目录
相关文章
|
JavaScript Android开发
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
589 0
|
NoSQL MongoDB
11 MongoDB - 数据查询(统计个数)
11 MongoDB - 数据查询(统计个数)
1718 0
|
存储 监控 Kubernetes
『Skywalking』.NET Core快速接入分布式链路追踪平台
📣读完这篇文章里你能收获到 - .NET Core接入Skywalking - 了解Skywalking的整体架构设计 - 了解Skywalking的各项技术指标怎么看 - 生产部署时的坑全跳过 - 感谢点赞+收藏,避免下次找不到~
1554 1
『Skywalking』.NET Core快速接入分布式链路追踪平台
|
9月前
|
安全 应用服务中间件 网络安全
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
本文详细介绍了基于雷池WAF的网站防护部署全流程,涵盖服务器与域名准备、WAF安装配置、网站接入设置及静态文件站点搭建等内容。通过最低1核CPU/1GB内存的服务器配置,完成Docker环境搭建、雷池一键安装及端口设置,实现域名解析、SSL证书配置和防护策略优化。同时支持301重定向与HTTP到HTTPS自动跳转,确保访问安全与规范。最后还提供了使用静态文件搭建网站的方法,帮助用户快速构建具备基础WAF防护能力的网站系统。
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
|
8月前
|
自然语言处理 JavaScript 前端开发
一夜获千星!已获 1.7k+,Art Design Pro:Vue3 + Vite + TypeScript 打造的高颜值管理系统模板,这个让后端小哥直呼救命的后台系统
Art Design Pro 是一款基于 Vue 3、Vite 和 TypeScript 的高颜值后台管理系统模板,已获 1.7k+ 星标。项目专注于用户体验与视觉设计,支持主题切换、多语言、权限管理及图表展示等功能,内置常用业务组件,便于快速搭建现代化管理界面。其技术栈先进,开发体验流畅,适配多设备,满足企业级应用需求。项目地址:[GitHub](https://github.com/Daymychen/art-design-pro)。
1518 11
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
409 14
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
643 1
|
JSON 前端开发 Go
前端文件下载的方式
【10月更文挑战第5天】
550 58
|
缓存 监控 NoSQL
【MongoDB 专栏】MongoDB 的内存管理与优化
【5月更文挑战第11天】MongoDB的内存管理优化对性能至关重要,涉及数据缓存、索引及执行操作的内存使用。动态内存管理根据访问模式和负载调整,可通过配置参数优化,如设置合适缓存大小,调整内存分配参数。索引管理也很重要,需定期评估优化,避免内存占用过高。监控内存使用、数据清理压缩、架构规划也是优化手段。面对挑战,如高并发下的内存不足,需灵活调整策略,平衡系统资源。不断学习新方法,提升内存管理能力,以优化MongoDB性能。
862 2
【MongoDB 专栏】MongoDB 的内存管理与优化
|
传感器 安全 测试技术
全球宕机:CrowdStrike事件始末
CrowdStrike是一家领先的网络安全公司,但在2024年7月因一次软件更新失误引发了全球大规模宕机事件。此次更新导致数百万台Windows设备蓝屏,影响了航空、金融等关键行业,造成巨额经济损失和企业运营中断。技术分析显示,故障源自CrowdStrike终端检测与响应Sensor的一个逻辑错误,使得系统尝试访问无效内存区域而崩溃。CrowdStrike迅速采取措施,停止并回滚问题更新,同时启动第三方安全审查以加强质量保证流程。此次事件不仅重创CrowdStrike的股价和声誉,也让业界深刻反思软件更新和系统弹性的重要性。
699 0
全球宕机:CrowdStrike事件始末