二级联动 下拉列表

二级联动 下拉列表 需先选择英雄,才能在选择英雄的皮肤
html页面

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>二级联动</title>
	</head>

	<body>
		<form action="#" method="post">
		<!--先创建两个下拉列表-->
			请选择英雄 : <select name="hero" id="hero" onchange="skinA()"></select>

			请选择皮肤 : <select name="skin" id="skin">
				<option value="">请选择皮肤</option>
			</select>
		</form>
	</body>
</html>

js代码

	<script>
		//创建英雄库
		var heroArry = ["请选择英雄", "诺手", "小法", "厄加特"];
		//创建英雄皮肤库
		var skinArry = [
			["请选择皮肤"],
			["请选择皮肤", "生化骑士", "勇敢的心(两周年限定)", "灌篮高手"],
			["请选择皮肤", "白魔法师 维迦", "魔导绅士 维迦", "永恒之森 维迦"],
			["请选择皮肤", "深渊巨蟹 厄加特", "电锯狂人 厄加特 ", "战地机甲 厄加特"]
		];
		//获取到英雄的下拉列表
		var hero = document.getElementById("hero");
		//得到英雄皮肤的下拉列表
		var skin = document.getElementById("skin");
		skin.style.width = "120px";
		//一级列表最先载入页面
		window.onload = function heroA() {

			//获取长度,一共需要多少个子选项
			hero.length = heroArry.length;
			//获取子选项数组
			let op = hero.options;
			for(let i = 0; i < op.length; i++) {
				op[i].value = heroArry[i];
				op[i].text = heroArry[i];
			}
			//当英雄下拉列表的索引为0时,禁用皮肤的下拉列表
			forbidden();
		}

		//给英雄皮肤赋值
		function skinA() {
			forbidden();
			//获取当前选中的字列表的索引值
			let index = hero.selectedIndex;
			//			console.log(index);
			//根据这个索引值,得到英雄皮肤库的数组
			let heroSkinArry = skinArry[index];

			//这只皮肤下拉列表的个数
			skin.length = heroSkinArry.length;
			//获得下拉列表的数组
			let op = skin.options;
			//

			//遍历皮肤 向英雄皮肤的下拉列表里添加值
			for(let i = 0; i < op.length; i++) {
				op[i].value = heroSkinArry[i];
				op[i].text = heroSkinArry[i];
			}
			//将每个的第一个选项加上selected,每次默认选择第一个
			op[0].selected = "selected";
			//			console.log(op[0]);
		}
		//判断一级列表的索引,为索引值0时,代表请选择英雄,二级列表不可选择
		function forbidden() {
			if(hero.selectedIndex == 0) {
				skin.disabled = true;
			} else {
				skin.disabled = false;
			}
		}
	</script>

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java.小小白

生活不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值