JavaScript省市联动实现代码


以下是一个简单的JavaScript省市联动实现的代码示例。这个示例使用了HTML来创建下拉列表,并用JavaScript来填充和联动这些下拉列表。

HTML部分:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>省市联动</title>
<script src="provinceCity.js"></script> <!-- 假设JavaScript代码保存在这个文件里 -->
</head>
<body>
    <select id="province" onchange="loadCities(this.value)">
        <option value="">请选择省份</option>
    </select>
    <select id="city">
        <option value="">请选择城市</option>
    </select>

    <script>
        // 初始化省份数据
        window.onload = function() {
            var provinces = [
                {name: '北京', value: 'beijing'},
                {name: '上海', value: 'shanghai'},
                // 假设这里有更多省份...
            ];
            var provinceSelect = document.getElementById('province');
            provinces.forEach(function(province) {
                var option = new Option(province.name, province.value);
                provinceSelect.add(option);
            });
        };
    </script>
</body>
</html>

JavaScript部分(假设保存在`provinceCity.js`文件中):


function loadCities(provinceValue) {
    var citySelect = document.getElementById('city');
    citySelect.length = 1; // 清除旧的城市选项

    // 这里用静态数据模拟,实际使用时应该从服务器获取数据
    var cities = {};
    cities['beijing'] = ['东城区', '西城区', '朝阳区'];
    cities['shanghai'] = ['黄浦区', '徐汇区', '浦东新区'];
    // 假设这里有更多省份对应的城市...

    if (cities[provinceValue]) {
        cities[provinceValue].forEach(function(city) {
            var option = new Option(city, city);
            citySelect.add(option);
        });
    } else {
        var option = new Option('无数据', '');
        citySelect.add(option);
    }
}

请注意,这个示例中的城市数据是静态的,并且直接写在了JavaScript代码中。在实际应用中,你可能需要从服务器动态获取这些数据。这通常涉及到AJAX请求或Fetch API的使用,但在这个简单的示例中,为了保持代码的简洁性,我使用了静态数据。

此外,`window.onload`函数用于在页面加载完成后初始化省份下拉列表。当用户选择省份时,`onchange`事件会触发`loadCities`函数,该函数根据选中的省份值来填充城市下拉列表。如果选中的省份没有对应的城市数据,城市下拉列表将显示“无数据”。