js省市区下拉框联动——前端笔记

问题:

我们常常要用到下拉框联动的功能,比如最常用的是选择地址的 省 市 区 的联动。

思路:

先填充第一个下拉框,然后写一个第一个下拉框的change事件来加载第二个下拉框,再写第二个下拉框的change事件来加载第三个下拉框。

示例:

这里我用到了一个数组文件areaData_min.js,这个文件 已经有了所有省市区的数据,直接从这个文件中取值就行。文件大概内容如下:
在这里插入图片描述

1、引入带省市区数据的js,下载地址areaData_min.js
在这里插入图片描述

2、准备三个下拉框

		<div>
			<select id="sheng"><!---->
	        </select>
	        <select id="shi"><!---->
	        </select>
	        <span id="hidequ"><!--用于隐藏-->
	        	<select id="qu"></select><!---->
	        </span>
		</div>

3、准备构建下拉框的方法

			function fillSelct(){//填充班级的下拉框
				for(var i=0;i<banJi.length;i++){
					var option = '<option value="'+ banJi[i].id + '">' + banJi[i].text
					+ '</option>';
					$('#bj').append(option);
				}
			}
			function fillSelct(){//填充省
				sheng.forEach(function(value, index) {
				  	var option = '<option value="'+ index + '">' + value+ '</option>';
					$('#sheng').append(option);
				})

			}
			function selectShi(sheng_id){//填充市
				$('#shi').empty();
				if(sheng_id==0){
					var option = '<option value="0">请选择</option>';
					$('#shi').append(option);
				}else{
					var shi = sub_array[sheng_id];
					shi.forEach(function(value, index) {
					  	var option = '<option value="'+ index + '">' + value+ '</option>';
						$('#shi').append(option);
					})
					if (sheng_id == 11 || sheng_id == 12 || sheng_id == 31 || sheng_id == 71 || sheng_id == 50 || sheng_id == 81 || sheng_id == 82) {
				        if ($("#hidequ")) {
				            $("#hidequ").hide();
				        }
				    }else{
				    	$("#hidequ").show();
				    }
				}

			}
			function selectQu(shi_id){//填充区
				$('#qu').empty();
				if(shi_id==0){
					var option = '<option value="0">请选择</option>';
					$('#qu').append(option);
				}else{
					var qu = sub_arr[shi_id];
					qu.forEach(function(value, index) {
					  	var option = '<option value="'+ index + '">' + value+ '</option>';
						$('#qu').append(option);
					})
				}

			}

4、页面初始化方法,形成联动

var sheng =area_array;//取出省的数组数据

			$(function(){//页面初始化
				fillSelct();//填充省
				selectShi(0);//填充市
				selectQu(0);//填充区
				$('#sheng').change(function(){//选择省的事件
					var sheng_id = $(this).val();
					selectShi(sheng_id);
				})
				$('#shi').change(function(){//选择市的事件
					var shi_id = $(this).val();
					selectQu(shi_id);
				})
			});

5、效果展示
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

完整代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>省市区下拉框联动</title>
		<script src="js/jquery.min.js"></script>
		<!--引入地区数据-->
		<script src="js/areaData_min.js"></script>
		<script>
			var sheng =area_array;//取出省的数组数据

			$(function(){//页面初始化
				fillSelct();//填充省
				selectShi(0);//填充市
				selectQu(0);//填充区
				$('#sheng').change(function(){//选择省的事件
					var sheng_id = $(this).val();
					selectShi(sheng_id);
				})
				$('#shi').change(function(){//选择市的事件
					var shi_id = $(this).val();
					selectQu(shi_id);
				})
			});
			function fillSelct(){//填充省
				sheng.forEach(function(value, index) {
				  	var option = '<option value="'+ index + '">' + value+ '</option>';
					$('#sheng').append(option);
				})

			}
			function selectShi(sheng_id){//填充市
				$('#shi').empty();
				if(sheng_id==0){
					var option = '<option value="0">请选择</option>';
					$('#shi').append(option);
				}else{
					var shi = sub_array[sheng_id];
					shi.forEach(function(value, index) {
					  	var option = '<option value="'+ index + '">' + value+ '</option>';
						$('#shi').append(option);
					})
					if (sheng_id == 11 || sheng_id == 12 || sheng_id == 31 || sheng_id == 71 || sheng_id == 50 || sheng_id == 81 || sheng_id == 82) {
				        if ($("#hidequ")) {
				            $("#hidequ").hide();
				        }
				    }else{
				    	$("#hidequ").show();
				    }
				}

			}
			function selectQu(shi_id){//填充区
				$('#qu').empty();
				if(shi_id==0){
					var option = '<option value="0">请选择</option>';
					$('#qu').append(option);
				}else{
					var qu = sub_arr[shi_id];
					qu.forEach(function(value, index) {
					  	var option = '<option value="'+ index + '">' + value+ '</option>';
						$('#qu').append(option);
					})
				}

			}

		</script>
	</head>
	<body>
		<div>
			<select id="sheng"><!---->
	        </select>
	        <select id="shi"><!---->
	        </select>
	        <span id="hidequ"><!--用于隐藏-->
	        	<select id="qu"></select><!---->
	        </span>
		</div>

	</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/60727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

整理mongodb文档:collation

文章连接 整理mongodb文档:collation 看前提示 对于mongodb的collation。个人主要用的范围是在createcollection&#xff0c;以及find的时候用&#xff0c;所以本片介绍的时候也是这两个地方入手&#xff0c;对新手个人觉得理解概念就好。不要求强制性掌握&#xff0c;但是要…

2023 8-5

430. 扁平化多级双向链表 前序遍历(递归) 脖子左歪45度,多级链表变成了二叉树,输出先序即可。 前序遍历再将结果存放在双向链表中,通过将链表存入节点来改变原来的节点 /* // Definition for a Node. class Node { public:int val;Node* prev;Node* next;Node* child; }; *…

芯片工程师求职题目之CPU篇(2)

1. CPU架构中流水线的概念&#xff1f; CPU流水线(pipelining)是一种将指令分解为多步&#xff0c;并让不同指令的各步操作重叠&#xff0c;从而实现几条指令并行处理&#xff0c;以加速程序运行过程的技术。指令的每步有各自独立的电路来处理&#xff0c;每完成一步&#xff…

Java问题排查工具Arthas安装教程

Java问题排查工具Arthas入门教程 什么是阿里Arthas&#xff1f; 在生产环境经常遇到大量的日志&#xff0c;同时还有一些性能问题&#xff0c;需要进行进程分析&#xff0c;排查&#xff0c;有时候确实比较花时间&#xff0c;所以可以借助一些开源的框架来实现&#xff0c;Art…

深入学习 Redis - 谈谈你对 Redis 的 RDB、AOF、混合持久化的了解吧?

目录 一、Redis 是怎么存储数据的&#xff1f; 二、Redis 具体是按照什么样的策略来实现持久化的&#xff1f; 2.1、RDB&#xff08;Redis Database&#xff09; 2.1.1、触发机制 2.1.2、bgsave 命令处理流程 2.1.3、RDB 文件的处理 2.1.4、演示效果 1&#xff09;手动执…

2023华数杯数学建模A题思路 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

Multimodal Learning with Transformer: A Survey

Transformer多模态学习 Abstract1 INTRODUCTION2 BACKGROUND2.1 Multimodal Learning (MML)2.2 Transformers: a Brief History and Milestones2.3 Multimodal Big Data 3 TRANSFORMERS: A GEOMETRICALLY TOPOLOGICAL PERSPECTIVE3.1 Vanilla Transformer3.1.1 Input Tokenizat…

查看gz文件 linux zcat file.gz mtx.gz

可以使用以下命令来查看 gz 压缩文件的内容&#xff1a; zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出&#xff0c;可以通过管道符将其与 grep 命令结合使用来查找需要的关键词&#xff0c;例如&#xff1a; zcat file.gz | grep keyword 1 该命令会将 file.gz…

GD32F103的EXTI中断和EXTI事件

GD32F103的EXTI可以产生中断&#xff0c;也产生事件信号。 GD32F03的EXTI触发源: 1、I/O管脚的16根线&#xff1b; 2、内部模块的4根线(包括LVD、RTC闹钟、USB唤醒、以太网唤醒)。 通过配置GPIO模块的AFIO_EXTISSx寄存器&#xff0c;所有的GPIO管脚都可以被选作EXTI的触发源…

windows开机运行jar

windows开机自启动jar包&#xff1a; 一、保存bat批处理文件 echo off %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit java -jar E:\projects\ruoyi-admin.jar > E:\server.log 2>&1 &…

VX-API-Gateway开源网关技术的使用记录

VX-API-Gateway开源网关技术的使用记录 官网地址 https://mirren.gitee.io/vx-api-gateway-doc/ VX-API-Gateway(以下称为VX-API)是基于Vert.x (java)开发的 API网关, 是一个分布式、全异步、高性能、可扩展、轻量级的可视化配置的API网关服务官网下载程序zip包 访问 https:/…

【机器学习】 贝叶斯理论的变分推理

许志永 一、说明 贝叶斯原理&#xff0c;站在概率角度上似乎容易解释&#xff0c;但站在函数立场上就不那么容易了&#xff1b;然而&#xff0c;在高端数学模型中&#xff0c;必须要在函数和集合立场上有一套完整的概念&#xff0c;其迭代和运算才能有坚定的理论基础。 二、贝叶…

刷题笔记 day7

力扣 209 长度最小的子数组 解法&#xff1a;滑动指针&#xff08;对同向双指针区间内的数据处理&#xff09; 1&#xff09;先初始化 两个指针 left &#xff0c;right。 2&#xff09;右移指针right的同时使用sum记录指针right处的值&#xff0c;并判断sum的值是否满足要求&…

【C#学习笔记】装箱和拆箱

文章目录 装箱和拆箱性能消耗装箱拆箱 比较var&#xff0c;object&#xff0c;dynamic&#xff0c;\<T\>varobject\<T\> 泛型dynamic 装箱和拆箱 在讲引用类型object的时候&#xff0c;我们说它是万能的&#xff0c;却没说它万能在哪里。 除了object为每一种变量…

【TiDB理论知识08】HATP概述

1 HTAP技术 OLTP 在线事务 支付 转账 高并发 每次操作的数据量少 &#xff0c;行存 OLAP 报表分析 每次操作大量数据 列存储 2 传统解决方案 数据抽取到数仓或者数据湖 ETL有延迟 &#xff0c;一般会有T1 T2 数据多副本 3 HTAP的要求 4 TIDB的HTAP架构 TiFlash特点&…

【Linux操作系统】相关问题和知识点总结~

【Linux操作系统】相关问题和知识点总结~&#x1f60e; 前言&#x1f64c;在Linux中&#xff0c;查看CPU使用效率top命令mpstat指令sar指令vmstat指令 如何查看Linux的内核版本grep指令&#xff08;用于在文件内容中&#xff0c;查找满足条件的内容&#xff09;如何批量删除当前…

Typescript+vite+sass手把手实现五子棋游戏(放置类)

Typescriptvitesass手把手实现五子棋游戏&#xff08;放置类&#xff09; 下面有图片和gif可能没加载出来 上面有图片和gif可能没加载出来 导言 最近练习Typescript&#xff0c;觉得差不多了&#xff0c;就用这个项目练练手&#xff0c;使用Typescript纯面向对象编程。 开源…

6.s081/6.1810(Fall 2022)Lab3: page tables

文章目录 前言其他篇章参考链接0. 前置环境1. Speed up system calls (easy)1.1 简单分析1.2 映射1.3 页分配1.4 页释放1.5 测试 2. Print a page table (easy)2.1 简单分析2.2 实现2.3 测试 3. Detect which pages have been accessed (hard)3.1 简单分析3.2 实现3.2.1 获取参…

【Ajax】笔记-设置CORS响应头实现跨域

CORS CORS CORS是什么&#xff1f; CORS(Cross-Origin Resource Sharing),跨域资源共享。CORS是官方的跨域解决方案&#xff0c;它的特点是不需要在客户端做任何特殊的操作&#xff0c;完全在服务器中进行处理&#xff0c;支持get和post请求。跨域资源共享标准新增了一组HTTP首…

【新版系统架构补充】-嵌入式技术

嵌入式微处理体系结构 冯诺依曼结构 传统计算机采用冯诺依曼结构&#xff0c;也称普林斯顿结构&#xff0c;是一种将程序指令存储器和数据存储器合并在一起的存储器结构 冯诺依曼的计算机程序和数据共用一个存储空间&#xff0c;程序指令存储地址和数据存储地址指向同一个存…