js代码实现1、籍贯至少设置三个省或直辖市,每一个省或直辖市至少设置三个区县,选择某个省或直辖市之后,显示对应下辖的区县,比如重庆市只显示重庆下辖的区县,不得显示其他省的区县(5分) 用户输入选课全部信息后(选修课至少选2门,选择课程如果没有达到2门,提交按钮不能使用),点击“选课”按钮,象示例行那样在表格下方插入新的一行。不能重复插入相同学号的记录。
时间: 2024-03-15 16:44:03 浏览: 19
好的,下面是一个简单的实现示例:
首先,我们需要准备好省市区县的数据,可以用一个嵌套的对象来表示:
```javascript
const areaData = {
"北京市": {
"东城区": {},
"西城区": {},
"朝阳区": {},
// ...
},
"上海市": {
"黄浦区": {},
"徐汇区": {},
"长宁区": {},
// ...
},
// ...
};
```
然后,我们可以通过遍历这个对象来生成省市区县的下拉列表:
```javascript
function generateAreaSelect() {
const provinceSelect = document.getElementById("province");
const citySelect = document.getElementById("city");
const districtSelect = document.getElementById("district");
// 生成省份列表
for (const province in areaData) {
const option = document.createElement("option");
option.value = province;
option.text = province;
provinceSelect.appendChild(option);
}
// 根据省份生成城市列表
provinceSelect.addEventListener("change", (event) => {
const province = event.target.value;
citySelect.innerHTML = "";
districtSelect.innerHTML = "";
for (const city in areaData[province]) {
const option = document.createElement("option");
option.value = city;
option.text = city;
citySelect.appendChild(option);
}
});
// 根据城市生成区县列表
citySelect.addEventListener("change", (event) => {
const province = provinceSelect.value;
const city = event.target.value;
districtSelect.innerHTML = "";
for (const district in areaData[province][city]) {
const option = document.createElement("option");
option.value = district;
option.text = district;
districtSelect.appendChild(option);
}
});
}
```
这个函数将会在页面加载时调用,生成省市区县的下拉列表,并且添加了省份和城市的 onchange 事件监听器,当用户选择省份或城市时会动态生成对应的下一级列表。
接下来,我们需要检查选课信息是否符合要求,并在用户点击“选课”按钮时插入一条新的记录:
```javascript
function insertCourseRecord() {
const table = document.getElementById("course-table");
const studentId = document.getElementById("student-id").value;
const course1 = document.getElementById("course1").value;
const course2 = document.getElementById("course2").value;
// 检查学生id和课程是否填写完整
if (!studentId || !course1 || !course2) {
alert("请填写完整的选课信息!");
return;
}
// 检查选修课门数是否达到要求
const courses = [course1, course2];
const uniqueCourses = [...new Set(courses)];
if (uniqueCourses.length < 2) {
alert("选修课门数必须达到2门!");
return;
}
// 检查是否重复插入记录
for (const row of table.rows) {
if (row.cells[0].textContent === studentId) {
alert("不能重复插入相同学号的记录!");
return;
}
}
// 插入新记录
const newRow = table.insertRow(-1);
const cell1 = newRow.insertCell(0);
const cell2 = newRow.insertCell(1);
const cell3 = newRow.insertCell(2);
cell1.textContent = studentId;
cell2.textContent = course1;
cell3.textContent = course2;
}
```
这个函数将会在用户点击“选课”按钮时调用,首先获取选课信息和表格元素,然后进行一系列检查,包括是否填写完整、选修课门数是否达到要求、是否重复插入记录等。最后,如果检查通过,就插入一条新的记录。
注意,这个示例只是一个非常简单的实现,实际应用中可能会涉及更多的数据验证和安全性问题,需要根据具体情况进行完善。