js之三级联动

简介: js之三级联动
<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- 引入jQuery库 -->
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <title>三级联动实例</title>
</head>
<body>
  <!-- 省份下拉列表 -->
  <select id="province">
    <option value="">请选择省份</option>
  </select>
  <!-- 城市下拉列表 -->
  <select id="city">
    <option value="">请选择城市</option>
  </select>
  <!-- 区域下拉列表 -->
  <select id="area">
    <option value="">请选择区域</option>
  </select>
  <!-- 提交按钮 -->
  <button type="button" id="submit">提交</button>
 
  <script>
    // 定义省市区数据
    const data = {
      "北京市": {
        "市辖区": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区"],
        "县": ["密云县", "延庆县"]
      },
      "上海市": {
        "市辖区": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区"],
        "县": ["崇明县"]
      },
      "广东省": {
        "广州市": ["天河区", "越秀区", "海珠区", "荔湾区", "番禺区"],
        "深圳市": ["福田区", "罗湖区", "南山区", "宝安区", "龙岗区"],
        "珠海市": ["香洲区", "斗门区", "金湾区"]
      }
      // 可以根据实际情况添加更多省市区数据
    };
 
    // 渲染省份列表
    function renderProvince() {
      let provinceSelect = document.getElementById("province");
      for (let province in data) {
        let option = document.createElement("option");
        option.value = province;
        option.innerHTML = province;
        provinceSelect.appendChild(option);
      }
    }
 
    // 渲染城市列表
    function renderCity(province) {
      let citySelect = document.getElementById("city");
      citySelect.innerHTML = "<option value=''>请选择城市</option>";
      if (province) {
        let cities = data[province];
        for (let city in cities) {
          let option = document.createElement("option");
          option.value = city;
          option.innerHTML = city;
          citySelect.appendChild(option);
        }
      }
    }
 
    // 渲染区域列表
    function renderArea(province, city) {
      let areaSelect = document.getElementById("area");
      areaSelect.innerHTML = "<option value=''>请选择区域</option>";
      if (province && city) {
        let areas = data[province][city];
        for (let area of areas) {
          let option = document.createElement("option");
          option.value = area;
          option.innerHTML = area;
          areaSelect.appendChild(option);
        }
      }
    }
 
    // 检查是否选择
    function checkSelected() {
      let province = document.getElementById("province").value;
      let city = document.getElementById("city").value;
      let area = document.getElementById("area").value;
      if (province && city && area) {
        alert("您选择了:" + province + " - " + city + " - " + area);
      } else {
        alert("请选择完整的省市区!");
      }
    }
 
    // 监听省份变化事件
    document.getElementById("province").addEventListener("change", function() {
      let province = this.value;
      renderCity(province);
      renderArea(province, "");
    });
 
    // 监听城市变化事件
    document.getElementById("city").addEventListener("change", function() {
      let province = document.getElementById("province").value;
      let city = this.value;
      renderArea(province, city);
    });
 
    // 监听提交按钮点击事件
    document.getElementById("submit").addEventListener("click", function() {
      checkSelected();
    });
 
    // 初始化
    renderProvince();
 
  </script>
</body>
</html>


目录
相关文章
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度
YOLOv11改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度
255 11
YOLOv11改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度
|
编解码 自然语言处理 数据可视化
阿里云百炼产品月刊【2024年10月】
阿里云百炼产品月刊【2024年10月】上线,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。本月推出开源图片解析模型qwen2-vl-7b-instruct和qwen2-vl-2b-instruct,提升图片理解能力;主流模型qwen-max、qwen-turbo和qwen-plus升级至快照0919版本,支持8千字长文本输出;新增应用观测功能,实时查看调用次数和应用时延。此外,还发布了《阿里云百炼产品动态》电子书以及阿里云百炼产品最新规划电子刊,汇集最新产品动态和实践案例。
994 0
|
监控 NoSQL 大数据
【MongoDB复制集瓶颈】高频大数据写入引发的灾难,如何破局?
【8月更文挑战第24天】在MongoDB复制集中,主节点处理所有写请求,从节点通过复制保持数据一致性。但在大量高频数据插入场景中,会出现数据延迟增加、系统资源过度消耗、复制队列积压及从节点性能不足等问题,影响集群性能与稳定性。本文分析这些问题,并提出包括优化写入操作、调整写入关注级别、采用分片技术、提升从节点性能以及持续监控调优在内的解决方案,以确保MongoDB复制集高效稳定运行。
384 2
免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明
免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明
694 3
|
存储 机器学习/深度学习 弹性计算
什么是阿里云服务器?云服务器的优缺点
什么是阿里云服务器?云服务器的优缺点,阿里云服务器全方位介绍包括云服务器ECS优势、云服务器租用价格、云服务器使用场景及限制说明,阿里云服务器网分享云服务器ECS介绍、个人和企业免费试用、云服务器活动、云服务器ECS规格、优势、功能及应用场景详细
192 0
什么是阿里云服务器?云服务器的优缺点
|
小程序 JavaScript Java
医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
466 0
|
存储 算法 数据可视化
LeetCode 133题详解:广度优先搜索和深度优先搜索实现克隆图
LeetCode 133题详解:广度优先搜索和深度优先搜索实现克隆图
|
XML 数据格式
yaml基本语法和yaml数据格式,ymal对象写法,数组写法
yaml基本语法和yaml数据格式,ymal对象写法,数组写法
|
缓存 Java 开发者
Spring循环依赖问题之Spring循环依赖如何解决
Spring循环依赖问题之Spring循环依赖如何解决
|
文字识别
阿里云商标注册申请智能、顾问和安心区别及选择攻略
阿里云商标智能注册申请、顾问注册和安心注册价格区别对比及选择攻略
459 0
阿里云商标注册申请智能、顾问和安心区别及选择攻略