需求:
通过三个下拉菜单的联动来实现,第一级下拉菜单为省级,第二级下拉菜单为市级,第三级下拉菜单为区级。当点击第一级下拉菜单,第二级菜单的内容会自动匹配;选择第二级菜单时,第三级菜单会自动生成。当我取消上一级菜单的选项时,次一级选项会自动消失。
原理:通过value值来控制三个下拉菜单的联动,先进行清空再赋值option
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<select name="" id="first" onchange="setSecond(this.value)">
<option value="1">省</option>
<option value="2">福建</option>
<option value="3">江苏</option>
</select>
<select name="" id="second">
<option value="">市</option>
</select>
<select name="" id="third">
<option value="">区</option>
</select>
<script>
function setSecond(value){
var val = value;
if(val==1){
var sec = document.getElementById("second");
var thi=document.getElementById("third");
sec.options.length=0; //清空二级菜单项
thi.options.length=0;//清空三级菜单项
sec.options[0] = new Option("市","shi");
thi.options[0] = new Option("区","qu");
}
if(val == 2){
var sec = document.getElementById("second");
var thi=document.getElementById("third");
sec.options.length=0;
thi.options.length=0;
sec.options[0] = new Option("福州市","fuzhoushi");
thi.options[0]=new Option("马尾区","maweiqu");
}
if(val==3){
var sec = document.getElementById("second");
var thi=document.getElementById("third");
sec.options.length=0;
thi.options.length=0;
sec.options[0] = new Option("扬州","yangzhou");
thi.options[0]=new Option("邗江区","hanjiangqu");
}
}
</script>
</form>
</body>
</html>
效果演示:
省市区三级联动