使用jQuery技术制作体育选课表单,其中包括姓名,学号,电话,籍贯和课程,其中籍贯要有省市联动,课程需选两门以上,表单有重置和提交功能,课程少于两门无法提交,提交后会生成一个选课信息统计表具体代码实现
时间: 2024-03-26 18:37:21 浏览: 103
好的,以下是一个简单的代码实现,包括HTML、CSS和JavaScript部分:
HTML部分:
```html
<form id="form">
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="student-id">学号:</label>
<input type="text" id="student-id" name="student-id" required>
</div>
<div>
<label for="tel">电话:</label>
<input type="tel" id="tel" name="tel" required>
</div>
<div>
<label for="province">籍贯:</label>
<select id="province" name="province" required></select>
<select id="city" name="city" required></select>
</div>
<div>
<label>课程:</label>
<select multiple id="courses" name="courses[]" required>
<option value="篮球">篮球</option>
<option value="足球">足球</option>
<option value="乒乓球">乒乓球</option>
<option value="羽毛球">羽毛球</option>
<option value="网球">网球</option>
</select>
</div>
<div>
<button type="reset">重置</button>
<button type="submit" disabled>提交</button>
</div>
</form>
<div id="result"></div>
```
CSS部分:
```css
form {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
width: 400px;
margin: 0 auto;
}
div {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 5px;
}
label {
width: 80px;
}
select[multiple] {
height: 120px;
}
button {
margin-top: 10px;
}
```
JavaScript部分:
```javascript
// 初始化省市数据
$.getJSON('./province.json', function(data) {
var provinces = data.provinces;
var $province = $('#province');
var $city = $('#city');
for (var i = 0; i < provinces.length; i++) {
$province.append($('<option>').attr('value', provinces[i].name).text(provinces[i].name));
}
$province.change(function() {
var currentProvince = $province.val();
for (var i = 0; i < provinces.length; i++) {
if (provinces[i].name === currentProvince) {
$city.empty();
var cities = provinces[i].cities;
for (var j = 0; j < cities.length; j++) {
$city.append($('<option>').attr('value', cities[j]).text(cities[j]));
}
break;
}
}
});
});
// 监听课程选择
$('#courses').change(function() {
if ($(this).val().length >= 2) {
$('button[type="submit"]').prop('disabled', false);
} else {
$('button[type="submit"]').prop('disabled', true);
}
});
// 监听表单提交
$('#form').submit(function(event) {
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
url: './submit.php',
type: 'POST',
data: formData,
success: function(data) {
$('#result').html(data);
}
});
});
```
其中,省市数据存储在一个JSON文件中,格式如下:
```json
{
"provinces": [
{
"name": "北京市",
"cities": [
"东城区",
"西城区",
"朝阳区",
"丰台区",
"石景山区",
"海淀区",
"门头沟区",
"房山区",
"通州区",
"顺义区",
"昌平区",
"大兴区",
"怀柔区",
"平谷区",
"密云区",
"延庆区"
]
},
// 其他省份的数据
]
}
```
在PHP文件submit.php中,我们可以处理表单提交数据,并返回选课信息统计表。具体实现过程不在此展示。
希望这个简单的示例可以帮助您实现您的体育选课表单。
阅读全文