省市县三级联动是指在一个网页应用中,用户可以通过选择省份来动态加载对应的城市列表,再通过选择城市来动态加载对应的区县列表。这种功能通常用于地址选择、物流配送等场景。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>省市县三级联动</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<select id="province">
<option value="">请选择省份</option>
</select>
<select id="city" disabled>
<option value="">请选择城市</option>
</select>
<select id="county" disabled>
<option value="">请选择区县</option>
</select>
<script src="script.js"></script>
</body>
</html>
$(document).ready(function() {
// 假设这是从服务器获取的省市县数据
const data = {
"北京市": {
"北京市": ["东城区", "西城区", "朝阳区"]
},
"上海市": {
"上海市": ["黄浦区", "徐汇区", "长宁区"]
}
};
// 加载省份
$.each(data, function(index, value) {
$('#province').append($('<option>').text(index).attr('value', index));
});
// 省份选择事件
$('#province').change(function() {
const province = $(this).val();
if (province) {
$('#city').empty().append($('<option>').text('请选择城市').attr('value', ''));
$('#county').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#city').prop('disabled', false);
} else {
$('#city').empty().append($('<option>').text('请选择城市').attr('value', ''));
$('#county').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#city').prop('disabled', true);
$('#county').prop('disabled', true);
}
});
// 城市选择事件
$('#city').change(function() {
const province = $('#province').val();
const city = $(this).val();
if (city) {
$('#county').empty().append($('<option>').text('请选择区县').attr('value', ''));
const cities = data[province];
$.each(cities, function(index, value) {
if (index === city) {
$.each(value, function(k, v) {
$('#county').append($('<option>').text(v).attr('value', v));
});
}
});
$('#county').prop('disabled', false);
} else {
$('#county').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#county').prop('disabled', true);
}
});
});
通过以上示例代码和常见问题解决方法,可以实现一个基本的省市县三级联动功能。根据实际需求,可以进一步优化和扩展功能。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云