使用javascript实现城市二级联动(onchange()当下拉框变化时触发事件createTextNode()方法和createElement()方法以及appendChild()方法)

使用javascript实现城市二级联动(onchange()当下拉框变化时触发事件createTextNode()方法和createElement()方法以及appendChild()方法)
技术分析
使用this.value 获取用户选择的是哪一个省份,this代表当前操作的元素。
  1. 确定事件为onchange()当下拉框变化时触发该事件。

  2. 创建一个二维数组
    var cities = new Array(3);
    cities[0] = new Array(“武汉市”,“黄冈市”,“襄阳市”,“荆州市”);
    cities[1] = new Array(“长沙市”,“郴州市”,“株洲市”,“岳阳市”);
    cities[2] = new Array(“石家庄市”,“邯郸市”,“廊坊市”,“保定市”);
    cities[3] = new Array(“郑州市”,“洛阳市”,“开封市”,“安阳市”);

  3. 创建文本节点createTextNode()方法和将创建元素节点方法createElement()方法。

  4. 给指定元素添加子元素作为最后一个元素,appendChild()方法,比如下拉框option。

代码步骤
  1. 首先确定事件为onchange()事件,并为该事件绑定一个函数。
  2. 书写该函数。
  3. 创建一个二维数组。
  4. 在判断用户选择的是哪一个省份。
  5. 获取该省份下的城市。
  6. 创建文本节点和元素节点,将文本节点添加到元素节点中。
  7. 获取第二个下拉框元素并把元素节点添加到第二个下拉框中。
  8. 清除第二个下拉框(如果不清除,就会有上一次的遗留)。
代码实现
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>二级联动</title>
		<script>
			//1.确定事件当下拉框变化时触发事件
			function changeCiti(val){
				//8.获取第二个下拉框元素
				var selEle = document.getElementById("provice");
				//9.清空第二个下拉框内容
				selEle.options.length=0
				//2.创建一个二维数组里面存放各省级城市。
				var cities = new Array(3);
				cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
				cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
				cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
				cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
				//3.判断用户选择的是那个省份。
				for(var i=0;i<cities.length;i++){
					if(val==i){
						//3.已经判断出了选择的是哪个省份。
						for(var j=0;j<cities[0].length;j++){
							//4.获取该省份下的城市
							var citie =	cities[i][j];
							//5.创建文本节点
							var ctitieNode = document.createTextNode(citie);
							//6.创建元素节点
							var eleNode = document.createElement("option");
							//7.将文本节点添加到元素节点中
							eleNode.appendChild(ctitieNode);
							//8.把元素节点添加的第二个下拉框中
							selEle.appendChild(eleNode)
						}
					}
				}
			}
		</script>
	</head>
	<body>
		<form action="#" method="get" name="regForm" οnsubmit="return checkform()">
		<!-- 创建十行两列表格-->
		<table  width="1350px" height="600px"  background="../img/regist_bg.jpg">
			<tr>
				<td align="center">
				<table border="1px" bgcolor="white" width="600px" height="550px" >
					<tr>
						<td height="55px" colspan="2">
							<strong>会员注册 USER REGISTER</strong>	
						</td>
					</tr>
					<tr>
						<td id="username1" name="username" width="30%" height="55px" align="right">用户名</td>
						<td width="70%" height="55px">
							<input type="text" name="username" />
						</td>
					</tr> 
					<tr>
						<td id="password1" name="password" width="30%" height="55px" align="right">密码</td>
						<td width="70%" height="55px">
							<input type="text" name="username" />
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">确认密码</td>
						<td width="70%" height="55px">
							<input type="text" name="reusername" />
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">籍贯</td>
						<td width="70%" height="55px" >
							<select name="provice" οnchange="changeCiti(this.value)">
								<option>--请选择--</option>
								<option value="0">湖北</option>
								<option value="1">湖南</option>
								<option value="2">河北</option>
								<option value="3">河南</option>
							</select>
							<select id="provice"></select>
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">姓名</td>
						<td width="70%" height="55px">
							<input type="text" name="name" />
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">性别</td>
						<td width="70%" height="55px">
							<input type="radio" name="sex" value="男"/>男
							<input type="radio" name="sex" value="女"/>女
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">出生日期</td>
						<td width="70%" height="55px">
							<input type="text" name="birthday" />
						</td>
					</tr>
					<tr>
						<td width="30%" height="55px" align="right">验证码</td>
						<td width="70%" height="55px">
							<img src="../img/yanzhengma.png" />
						</td>
					</tr>
					<tr>
						<td height="55px" align="center" colspan="2">
							<input type="submit" value="提交表单" />
						</td>
					</tr>
				</table>
				</td>
			</tr>	
		</table>
		</form>
	</body>
</html>

页面效果展示
在这里插入图片描述

发布了93 篇原创文章 · 获赞 0 · 访问量 327

猜你喜欢

转载自blog.csdn.net/qq_40332952/article/details/104361687