html之select三级联动

三级联动

三级联动的核心是onchange监听文本变化

主要逻辑:当第一个下拉框的内容发生变化时 凭借该文本框的当前内容拿到对应的下一个文本框的下拉内容,并且放入下一个下拉框以供选择,依次类推
而点击提交时凭借三个下拉框的数据进行请求数据

首先我们需要三个下拉框和一个提交按钮
复制代码请更改jquery.js文件路径

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>三级联动</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
</head>
<body>
<div>
       <select id="select1" name="sname1" form="form3"   onchange="nianjibianhua();" style="width:200px;height:50px;"  >
       <!-- <option value='0'>请选择...</option> --></select>
       <select id="select2"name="sname2" form="form3" style="width:200px; height:50px;"  onchange="banjibianhua();"> </select>
       <select id="select3" name="sname3" form="form3" style="width:200px;height:50px;" onChange="xingmingbianhua();"> </select>
   	   <form  id="rfFrame" class="" action="" method="get">
          <button class=""  lay-submit="" lay-filter="topsearch"  onClick="tijiao();" style="height:50px; width:100px; background-color:#0FF; color:#000;">提交</button>
       </form>
       <iframe id="rfFrame" name="rfFrame" src="about:blank" style="display:none;"></iframe>  
 </div>
</body>
</html>

JS中这样写
循环添加option 并且在变化时清空
可以使用$.get()方法配合后台完成ajax三级联动

 <script type="text/javascript">
//页面加载时请求年级
window.onload=function(){
	//年级放入年级框
			data=["一年级","二年级","三年级"];
			nianjiquanbu=[];
			for(i=0;i<data.length;i++){
			 nianjiquanbu+="<option value=\"" + i+ "\" >"+data[i]+"</option>"
				
			}		
		$("#select1").html("<option value='c' >请选择...</option> "+nianjiquanbu);	 		
}			
	//当年级框值发生变化的时候
	 function nianjibianhua(){
		 $("#select2").empty();
		 $("#select3").empty();
		 xuanzhong1 = $('#select1 option:selected');
		 selectValue1 = xuanzhong1.val();
		 selectedText1 = xuanzhong1.text();
		if(selectedText1=="请选择..."){
			$("#select2").empty();
		 	$("#select3").empty();		
		}
		else{
			ding_moxing_banji();
		}

		}
	//将年级框变化请求来的数据放到班级里			
	function ding_moxing_banji(data){ 
			data=["1705","1706","1707"];
			banjiquanbu=[];
			for(i=0;i<data.length;i++){
			 banjiquanbu+="<option value=\"" + i+ "\" >"+data[i]+"</option>"
				
			}		
		$("#select2").html("<option value='c' >请选择...</option> "+banjiquanbu);	 		
	}
		
	//班级值变化的时候
	function banjibianhua(){
		 xuanzhong2 = $('#select2 option:selected');
		 selectValue2 = xuanzhong2.val();
		 selectedText2 = xuanzhong2.text(); 
		if(selectedText2=="请选择..."){
			$("#select2").empty();
		 	$("#select3").empty();	
			$("#select2").html("<option value='c' >请选择...</option> "+banjiquanbu);		
		}else{
			ding_moxing_xingming();
		}
	}
	//将班级值变化请求来的数据放到学生框子里
	function ding_moxing_xingming(data){ 
			data=["叶凡","叶星辰","叶小天"];
			xingmingquanbu=[];
			//alert(JSON.stringify(data));
			for(i=0;i<data.length;i++){
			 xingmingquanbu+="<option value=\"" + i+ "\" >"+data[i]+"</option>"
			}		
	$("#select3").html("<option value='c' >请选择...</option> "+xingmingquanbu);	 		
	}
	//获取名字框内容
	function xingmingbianhua(){
		 xuanzhong3 = $('#select3 option:selected');
		 selectValue3= xuanzhong3.val();
		 selectedText3 = xuanzhong3.text();	
	}
	function tijiao(){
				alert(selectedText1);
				alert(selectedText2);
				alert(selectedText3);	
	}
</script>
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
三级联动指的是在选择一个下拉框选项后,下一个下拉框的选项会根据前一个下拉框的选项进行动态加载。具体实现可以参考以下示例代码: HTML代码: ```html <label>省份:</label> <select id="province"></select> <label>城市:</label> <select id="city"></select> <label>区县:</label> <select id="district"></select> ``` JavaScript代码: ```javascript // 省份数据 var provinceData = [ {name: '北京', code: '110000'}, {name: '天津', code: '120000'}, {name: '河北省', code: '130000'}, // ... ]; // 城市数据 var cityData = { '110000': [ {name: '北京市', code: '110100'}, ], '120000': [ {name: '天津市', code: '120100'}, ], '130000': [ {name: '石家庄市', code: '130100'}, {name: '唐山市', code: '130200'}, // ... ], // ... }; // 区县数据 var districtData = { '110100': [ {name: '东城区', code: '110101'}, {name: '西城区', code: '110102'}, // ... ], '120100': [ {name: '和平区', code: '120101'}, {name: '河东区', code: '120102'}, // ... ], '130100': [ {name: '长安区', code: '130102'}, {name: '桥西区', code: '130104'}, // ... ], // ... }; // 初始化省份下拉框 var provinceSelect = document.getElementById('province'); for (var i = 0; i < provinceData.length; i++) { var option = document.createElement('option'); option.value = provinceData[i].code; option.text = provinceData[i].name; provinceSelect.appendChild(option); } // 初始化城市下拉框 var citySelect = document.getElementById('city'); provinceSelect.onchange = function() { citySelect.innerHTML = ''; // 清空城市下拉框 var provinceCode = this.value; var cities = cityData[provinceCode]; for (var i = 0; i < cities.length; i++) { var option = document.createElement('option'); option.value = cities[i].code; option.text = cities[i].name; citySelect.appendChild(option); } // 触发城市下拉框的change事件,动态加载区县下拉框 citySelect.onchange(); }; // 初始化区县下拉框 var districtSelect = document.getElementById('district'); citySelect.onchange = function() { districtSelect.innerHTML = ''; // 清空区县下拉框 var cityCode = this.value; var districts = districtData[cityCode]; for (var i = 0; i < districts.length; i++) { var option = document.createElement('option'); option.value = districts[i].code; option.text = districts[i].name; districtSelect.appendChild(option); } }; // 页面加载完成后触发省份下拉框的change事件,动态加载城市下拉框 provinceSelect.onchange(); ``` 以上代码实现了一个简单的三级联动下拉框,可以根据实际需求进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值