制作一个学生选课表单,包括姓名,学号,电话,性别,籍贯,课程,使用jQuery完成如下操作: 1、籍贯至少设置三个省或直辖市,每一个省或直辖市至少设置三个区县,选择某个省或直辖市之后,显示对应下辖的区县,比如重庆市只显示重庆下辖的区县,不得显示其他省的区县(5分) 用户输入选课全部信息后(选修课至少选2门,选择课程如果没有达到2门,提交按钮不能使用),点击“选课”按钮,象示例行那样在表格下方插入新的一行。不能重复插入相同学号的记录。
时间: 2023-12-12 08:03:23 浏览: 162
好的,我可以为您提供相关帮助。首先,您需要使用HTML和CSS创建一个表单,并使用jQuery添加动态功能。
以下是一个示例表单的HTML代码:
```html
<form id="course-form">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="id">学号:</label>
<input type="text" id="id" name="id" required><br>
<label for="phone">电话:</label>
<input type="tel" id="phone" name="phone" required><br>
<label for="gender">性别:</label>
<select id="gender" name="gender" required>
<option value="male">男</option>
<option value="female">女</option>
</select><br>
<label for="province">籍贯:</label>
<select id="province" name="province" required>
<option value="">请选择省份</option>
<option value="北京市">北京市</option>
<option value="上海市">上海市</option>
<option value="重庆市">重庆市</option>
</select><br>
<label for="city">区县:</label>
<select id="city" name="city" required>
<option value="">请选择区县</option>
</select><br>
<label for="courses">课程:</label><br>
<input type="checkbox" id="course1" name="courses" value="数学">数学<br>
<input type="checkbox" id="course2" name="courses" value="语文">语文<br>
<input type="checkbox" id="course3" name="courses" value="英语">英语<br>
<button type="submit" id="submit-btn" disabled>选课</button>
</form>
<table id="course-table">
<thead>
<tr>
<th>姓名</th>
<th>学号</th>
<th>电话</th>
<th>性别</th>
<th>籍贯</th>
<th>课程</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
```
接下来,您需要使用CSS样式来美化表单。
以下是一个示例CSS样式:
```css
form {
display: flex;
flex-direction: column;
width: 300px;
}
label {
margin-top: 10px;
}
select {
margin-bottom: 10px;
}
input[type="checkbox"] {
margin-top: 10px;
margin-bottom: 10px;
}
button {
margin-top: 10px;
}
#course-table {
margin-top: 20px;
border-collapse: collapse;
}
#course-table th, #course-table td {
border: 1px solid black;
padding: 5px;
}
```
现在,您需要使用jQuery来添加动态功能。首先,使用以下代码来创建一个对象数组,用于存储所有的省、市和区县信息:
```javascript
var provinces = [
{
name: "北京市",
cities: [
"东城区",
"西城区",
"朝阳区"
]
},
{
name: "上海市",
cities: [
"黄浦区",
"徐汇区",
"长宁区"
]
},
{
name: "重庆市",
cities: [
"渝中区",
"江北区",
"南岸区"
]
}
];
```
然后,创建一个函数来根据选择的省份更新区县的下拉列表:
```javascript
function updateCities() {
var province = $("#province").val();
var cities = provinces.find(p => p.name === province).cities;
var options = cities.map(c => "<option value='" + c + "'>" + c + "</option>");
$("#city").html("<option value=''>请选择区县</option>" + options.join(""));
}
```
最后,您需要创建一个事件处理函数来禁用或启用提交按钮,并在表格下方插入新的一行:
```javascript
$("#course-form").submit(function(e) {
e.preventDefault();
var name = $("#name").val();
var id = $("#id").val();
var phone = $("#phone").val();
var gender = $("#gender").val();
var province = $("#province").val();
var city = $("#city").val();
var courses = $("input[name='courses']:checked").map(function() {
return $(this).val();
}).get();
var record = {
name: name,
id: id,
phone: phone,
gender: gender,
province: province,
city: city,
courses: courses
};
var existingIds = $("td:nth-child(2)").map(function() {
return $(this).text();
}).get();
if(existingIds.includes(id)) {
alert("该学号已存在!");
} else if(courses.length < 2) {
alert("请选择至少两门课程!");
} else {
$("#submit-btn").prop("disabled", true);
$("tbody").append("<tr><td>" + name + "</td><td>" + id + "</td><td>" + phone + "</td><td>" + gender + "</td><td>" + province + " " + city + "</td><td>" + courses.join(", ") + "</td></tr>");
$("#course-form")[0].reset();
$("#city").html("<option value=''>请选择区县</option>");
}
});
```
最后,您需要使用以下代码来调用更新区县下拉列表的函数:
```javascript
$("#province").change(function() {
updateCities();
});
```
这样,您的学生选课表单就已经完成了!
阅读全文