jquery select 选中表单特效select城市选择三级联动

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery 三级联动城市选择</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> 
    <style>
        body {
            font-family: 'Microsoft YaHei', Arial, sans-serif;
            background-color: #f5f5f5;
            margin: 0;
            padding: 20px;
            color: #333;
        }
        .container {
            max-width: 800px;
            margin: 30px auto;
            padding: 25px;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }
        h1 {
            color: #2c3e50;
            text-align: center;
            margin-bottom: 30px;
        }
        .form-group {
            margin-bottom: 20px;
        }
        label {
            display: block;
            margin-bottom: 8px;
            font-weight: bold;
            color: #34495e;
        }
        select {
            width: 100%;
            padding: 10px 15px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
            background-color: #fff;
            transition: border-color 0.3s;
        }
        select:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 5px rgba(52, 152, 219, 0.5);
        }
        .result {
            margin-top: 30px;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 4px;
            border-left: 4px solid #3498db;
        }
        .footer {
            text-align: center;
            margin-top: 40px;
            color: #7f8c8d;
            font-size: 14px;
        }
        .footer a {
            color: #e74c3c;
            text-decoration: none;
        }
        .footer a:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>省市区三级联动选择</h1>
        
        <div class="form-group">
            <label for="province">省份</label>
            <select id="province">
                <option value="">请选择省份</option>
            </select>
        </div>
        
        <div class="form-group">
            <label for="city">城市</label>
            <select id="city" disabled>
                <option value="">请选择城市</option>
            </select>
        </div>
        
        <div class="form-group">
            <label for="district">区县</label>
            <select id="district" disabled>
                <option value="">请选择区县</option>
            </select>
        </div>
        
        <div class="result" id="result">
            请选择完整的省市区信息...
        </div>
        
        <div class="footer">
       
        </div>
    </div> 
 
    <script>
        $(document).ready(function() {
            // 省份数据 
            const provinceData = [
                {code: 'bj', name: '北京市'},
                {code: 'sh', name: '上海市'},
                {code: 'zj', name: '浙江省'},
                {code: 'gd', name: '广东省'},
                {code: 'js', name: '江苏省'}
            ];
            
            // 城市数据 
            const cityData = {
                'bj': [
                    {code: 'bj-1', name: '东城区'},
                    {code: 'bj-2', name: '西城区'},
                    {code: 'bj-3', name: '朝阳区'}
                ],
                'sh': [
                    {code: 'sh-1', name: '黄浦区'},
                    {code: 'sh-2', name: '徐汇区'},
                    {code: 'sh-3', name: '长宁区'}
                ],
                'zj': [
                    {code: 'zj-1', name: '杭州市'},
                    {code: 'zj-2', name: '宁波市'},
                    {code: 'zj-3', name: '温州市'}
                ],
                'gd': [
                    {code: 'gd-1', name: '广州市'},
                    {code: 'gd-2', name: '深圳市'},
                    {code: 'gd-3', name: '珠海市'}
                ],
                'js': [
                    {code: 'js-1', name: '南京市'},
                    {code: 'js-2', name: '苏州市'},
                    {code: 'js-3', name: '无锡市'}
                ]
            };
            
            // 区县数据 
            const districtData = {
                'bj-1': [
                    {code: 'bj-1-1', name: '东华门街道'},
                    {code: 'bj-1-2', name: '景山街道'},
                    {code: 'bj-1-3', name: '交道口街道'}
                ],
                'bj-2': [
                    {code: 'bj-2-1', name: '西长安街街道'},
                    {code: 'bj-2-2', name: '新街口街道'},
                    {code: 'bj-2-3', name: '月坛街道'}
                ],
                'bj-3': [
                    {code: 'bj-3-1', name: '建外街道'},
                    {code: 'bj-3-2', name: '朝外街道'},
                    {code: 'bj-3-3', name: '三里屯街道'}
                ],
                'sh-1': [
                    {code: 'sh-1-1', name: '南京东路街道'},
                    {code: 'sh-1-2', name: '外滩街道'},
                    {code: 'sh-1-3', name: '半淞园路街道'}
                ],
                'sh-2': [
                    {code: 'sh-2-1', name: '徐家汇街道'},
                    {code: 'sh-2-2', name: '天平路街道'},
                    {code: 'sh-2-3', name: '枫林路街道'}
                ],
                'sh-3': [
                    {code: 'sh-3-1', name: '华阳路街道'},
                    {code: 'sh-3-2', name: '江苏路街道'},
                    {code: 'sh-3-3', name: '新华路街道'}
                ],
                'zj-1': [
                    {code: 'zj-1-1', name: '上城区'},
                    {code: 'zj-1-2', name: '下城区'},
                    {code: 'zj-1-3', name: '西湖区'}
                ],
                'zj-2': [
                    {code: 'zj-2-1', name: '海曙区'},
                    {code: 'zj-2-2', name: '江东区'},
                    {code: 'zj-2-3', name: '江北区'}
                ],
                'zj-3': [
                    {code: 'zj-3-1', name: '鹿城区'},
                    {code: 'zj-3-2', name: '龙湾区'},
                    {code: 'zj-3-3', name: '瓯海区'}
                ],
                'gd-1': [
                    {code: 'gd-1-1', name: '越秀区'},
                    {code: 'gd-1-2', name: '荔湾区'},
                    {code: 'gd-1-3', name: '海珠区'}
                ],
                'gd-2': [
                    {code: 'gd-2-1', name: '福田区'},
                    {code: 'gd-2-2', name: '罗湖区'},
                    {code: 'gd-2-3', name: '南山区'}
                ],
                'gd-3': [
                    {code: 'gd-3-1', name: '香洲区'},
                    {code: 'gd-3-2', name: '斗门区'},
                    {code: 'gd-3-3', name: '金湾区'}
                ],
                'js-1': [
                    {code: 'js-1-1', name: '玄武区'},
                    {code: 'js-1-2', name: '秦淮区'},
                    {code: 'js-1-3', name: '建邺区'}
                ],
                'js-2': [
                    {code: 'js-2-1', name: '姑苏区'},
                    {code: 'js-2-2', name: '虎丘区'},
                    {code: 'js-2-3', name: '吴中区'}
                ],
                'js-3': [
                    {code: 'js-3-1', name: '梁溪区'},
                    {code: 'js-3-2', name: '滨湖区'},
                    {code: 'js-3-3', name: '新吴区'}
                ]
            };
            
            // 初始化省份下拉框 
            $.each(provinceData, function(index, item) {
                $('#province').append('<option value="' + item.code  + '">' + item.name  + '</option>');
            });
            
            // 省份选择变化时 
            $('#province').change(function() {
                const provinceCode = $(this).val();
                
                // 清空并禁用城市和区县下拉框 
                $('#city').empty().append('<option value="">请选择城市</option>').prop('disabled', true);
                $('#district').empty().append('<option value="">请选择区县</option>').prop('disabled', true);
                
                if (provinceCode) {
                    // 启用城市下拉框 
                    $('#city').prop('disabled', false);
                    
                    // 填充城市数据 
                    const cities = cityData[provinceCode];
                    $.each(cities, function(index, item) {
                        $('#city').append('<option value="' + item.code  + '">' + item.name  + '</option>');
                    });
                }
                
                updateResult();
            });
            
            // 城市选择变化时 
            $('#city').change(function() {
                const cityCode = $(this).val();
                
                // 清空并禁用区县下拉框 
                $('#district').empty().append('<option value="">请选择区县</option>').prop('disabled', true);
                
                if (cityCode) {
                    // 启用区县下拉框 
                    $('#district').prop('disabled', false);
                    
                    // 填充区县数据 
                    const districts = districtData[cityCode];
                    $.each(districts, function(index, item) {
                        $('#district').append('<option value="' + item.code  + '">' + item.name  + '</option>');
                    });
                }
                
                updateResult();
            });
            
            // 区县选择变化时 
            $('#district').change(function() {
                updateResult();
            });
            
            // 更新结果显示 
            function updateResult() {
                const province = $('#province option:selected').text();
                const city = $('#city option:selected').text();
                const district = $('#district option:selected').text();
                
                if (province && province !== '请选择省份') {
                    let resultText = '您选择了:' + province;
                    
                    if (city && city !== '请选择城市') {
                        resultText += ' - ' + city;
                        
                        if (district && district !== '请选择区县') {
                            resultText += ' - ' + district;
                        }
                    }
                    
                    $('#result').text(resultText);
                } else {
                    $('#result').text('请选择完整的省市区信息...');
                }
            }
        });
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值