首次的onload, 市/區無法跟著省份, 怎麼改變呢
来源:7-8 编程练习
慕桂英0504842
2020-06-30 17:38:03
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function address() {
/*请在此补充代码*/
var a = document.getElementById("a");
var b = document.getElementById("b");
var aArr = ["北京市", "天津市", "河北市", "河南市"];
var bArr = ["朝陽區", "西城區", "石家庄", "邯鄲市", "西青區", "武清區", "鄭州市", "開封市"];
selectAdd(a, aArr, aArr.length);
selectAdd(b, bArr, bArr.length);
a.selectedIndex = 0;
}
function selectAdd(obj, name, value) {
/*请在此补充代码*/
for (var i = 0; i < value; i++) {
obj.options.add(new Option(name[i], i));
}
}
function linkage() {
/*请在此补充代码*/
var a = document.getElementById("a");
var b = document.getElementById("b");
var arr;
var aVal = parseInt(a.value);
if (aVal === 0) {
arr = [b[0].text, b[1].text];
} else if (aVal == 1) {
arr = [b[2].text, b[3].text];
} else if (aVal == 2) {
arr = [b[4].text, b[5].text];
} else if (aVal == 3) {
arr = [b[6].text, b[7].text];
}
b.options.length = 0;
selectAdd(b, arr, arr.length);
}
</script>
</head>
<body onload="address()">
<form>
省份:
<!-- 请在此补充代码 -->
<select id="a" onchange="linkage()"></select>
市/区:
<!-- 请在此补充代码 -->
<select id="b"></select>
</form>
</body>
</html>只有第一次onload, 市/區無法跟著省份呈現, 不曉得能如何做變更呢?

另外代碼的部分有需要再優化嗎?
2回答
同学你好,测试同学最新贴出的代码,运行效果是正确的,但是有一点小建议,根据省市分级,西青区、武清区属于添加市,建议根据对应层级添加市区,修改后如下:

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
慕桂英0504842
提问者
2020-06-30
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function address() {
/*请在此补充代码*/
var a = document.getElementById("a");
var b = document.getElementById("b");
var aArr = ["北京市", "天津市", "河北市", "河南市"];
var bArr = ["朝陽區", "西城區", "石家庄", "邯鄲市", "西青區", "武清區", "鄭州市", "開封市"];
selectAdd(a, aArr, aArr.length);
selectAdd(b, bArr, bArr.length);
a.selectedIndex = 0;
linkage();
}
function selectAdd(obj, name, value) {
/*请在此补充代码*/
for (var i = 0; i < value; i++) {
obj.options.add(new Option(name[i], i));
}
}
function linkage() {
/*请在此补充代码*/
var a = document.getElementById("a");
var b = document.getElementById("b");
var arr;
var aVal = parseInt(a.value);
if (aVal === 0) {
arr = ["朝陽區", "西城區"];
} else if (aVal == 1) {
arr = ["石家庄", "邯鄲市"];
} else if (aVal == 2) {
arr = ["西青區", "武清區"];
} else if (aVal == 3) {
arr = ["鄭州市", "開封市"];
}
b.options.length = 0;
selectAdd(b, arr, arr.length);
}
</script>
</head>
<body onload="address()">
<form>
省份:
<!-- 请在此补充代码 -->
<select id="a" onchange="linkage()"></select>
市/区:
<!-- 请在此补充代码 -->
<select id="b"></select>
</form>
</body>
</html>已修正過代碼, 這樣寫是否就能符合第一次onload也能連動的效果呢
相似问题