jQuery库+distpicker库实现省市区三级联动效果(超简单版)

介绍

        创建一个省-市-区 (省市区) 三级联动下拉列表,用于选择中国的地理位置。这种功能通常用在用户需要选择其位置的表单中,本文将使用 jQuery 和distpicker库实现省-市-区 (省市区) 三级联动下拉列表distpicker,实现效果图如下:

准备工作:引入所需的库

        要设置级联下拉列表,我们首先需要包含 jQuery 库和distpicker插件。您可以从本地来源或通过 CDN 包含这些资源,大家可以根据自身需求进行选择。

1.CDN

        可以使用内容交付网络 (CDN) 来包含这些库。CDN 可以提供更快的访问速度并减少服务器的负载

注意:在文件里直接引入即可,不用做其他配置和操作

         <!--    jsDelivr CDN 引入了 jQuery 库的压缩(minified)版本-->
    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
        <!--从 jsDelivr CDN 引入了 distpicker库-->
    <script src="https://cdn.jsdelivr.net/npm/distpicker/dist/distpicker.min.js"></script>

2.本地

        如果您已下载这些库并将它们托管在您的服务器上,则可以直接包含它们。如果您想确保版本一致性或者您在互联网访问受限的环境中工作,则此方法非常有用。

 注意:下面路径不能直接复制,需要通过上述cdn对应网址访问,复制内容,然后在自己的项目里创建jQuery.js文件和distpicker.js文件,将相应内容放入,然后根据你的具体路径即可引用

         <!-- 引入jQuery库   -->
    <script src="/ajax/webjars/jquery/3.7.1/jquery.min.js" type="text/javascript"></script>
        <!--引入js的distpicker库-->
    <script src="/ajax/js/distpicker.min.js"></script>

HTML 结构

  • 我们使用三个<select>元素,每个元素代表地理层次结构的一级:省份 ( province)、城市 ( city) 和地区 ( district)。这些元素被包装在一个带有 id 的 div 中distpicker。此设置对于正确初始化插件至关重要distpicker。

  • 
    <style>
            select{
                width: 100px;
            }
            option{
                width: 50px;
            }
    </style>
    
    <body>
    <div id="distpicker" class="distpicker">
        <!-- 省份选择 -->
        <select id="province" name="province" ></select>
        <!-- 城市选择 -->
        <select id="city" name="city" ></select>
        <!-- 地区选择 -->
        <select id="district" name="district"></select>
    
    </div>
    </body>

初始化Distpicker

  • 我们使用一个简单的 jQuery 命令$("#distpicker").distpicker();来初始化divdistpicker上的插件distpicker。它将我们的普通<select>元素转变为动态的、互连的下拉系统。

  • <script type="text/javascript">
        // 初始化Distpicker
        $("#distpicker").distpicker();
    </script>
  • 该distpicker库拥有中国省、市和地区的预定义数据集。  当用户从第一个下拉列表中选择一个省份时,distpicker更新第二个下拉列表(城市)以仅显示该省份的城市。 同样,当用户选择一个城市时,第三个下拉列表(地区)将更新为仅显示该城市的地区。 这确保了选择始终一致且彼此相关,从而提供流畅且用户友好的体验。

整体代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

        <!-- 引入jQuery库   -->
    <script src="/ajax/webjars/jquery/3.7.1/jquery.min.js" type="text/javascript"></script>
        <!--引入js的distpicker库-->
    <script src="/ajax/js/distpicker.min.js"></script>

    <!-- 也可以直接用cdn引入-->
    <!--    jsDelivr CDN 引入了 jQuery 库的压缩(minified)版本-->
    <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
    <!--从 jsDelivr CDN 引入了 distpicker库-->
    <script src="https://cdn.jsdelivr.net/npm/distpicker/dist/distpicker.min.js"></script>


    <style>
        select{
            width: 100px;
        }
        option{
            width: 50px;
        }
    </style>

</head>
<body>

<div id="distpicker" class="distpicker">
    <!-- 省份选择 -->
    <select id="province" name="province" ></select>
    <!-- 城市选择 -->
    <select id="city" name="city" ></select>
    <!-- 地区选择 -->
    <select id="district" name="district"></select>

</div>
<script type="text/javascript">
    // 初始化Distpicker
    $("#distpicker").distpicker();
</script>
</body>
</html>

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是一个简单的基于 jQuery 和 Ajax 实现省市县三级联动的示例代码: HTML 代码: ```html <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JavaScript 代码: ```javascript $(function() { // 加载省份列表 $.ajax({ url: 'province.php', type: 'GET', dataType: 'json', success: function(data) { $.each(data, function(index, province) { $('#province').append('<option value="' + province.id + '">' + province.name + '</option>'); }); } }); // 加载城市列表 $('#province').change(function() { var provinceId = $(this).val(); if (provinceId != '') { $.ajax({ url: 'city.php', type: 'GET', dataType: 'json', data: {provinceId: provinceId}, success: function(data) { $('#city').empty().append('<option value="">请选择城市</option>'); $('#district').empty().append('<option value="">请选择区县</option>'); $.each(data, function(index, city) { $('#city').append('<option value="' + city.id + '">' + city.name + '</option>'); }); } }); } else { $('#city').empty().append('<option value="">请选择城市</option>'); $('#district').empty().append('<option value="">请选择区县</option>'); } }); // 加载区县列表 $('#city').change(function() { var cityId = $(this).val(); if (cityId != '') { $.ajax({ url: 'district.php', type: 'GET', dataType: 'json', data: {cityId: cityId}, success: function(data) { $('#district').empty().append('<option value="">请选择区县</option>'); $.each(data, function(index, district) { $('#district').append('<option value="' + district.id + '">' + district.name + '</option>'); }); } }); } else { $('#district').empty().append('<option value="">请选择区县</option>'); } }); }); ``` 省份列表数据接口(province.php)返回 JSON 数据格式: ```json [ {"id": "110000", "name": "北京市"}, {"id": "120000", "name": "天津市"}, // 省份数据... ] ``` 城市列表数据接口(city.php)根据省份 ID 返回 JSON 数据格式: ```json [ {"id": "110100", "name": "北京市"}, {"id": "110200", "name": "县城市"}, // 城市数据... ] ``` 区县列表数据接口(district.php)根据城市 ID 返回 JSON 数据格式: ```json [ {"id": "110101", "name": "东城区"}, {"id": "110102", "name": "西城区"}, // 区县数据... ] ``` 以上是一个简单jQuery 和 Ajax 实现省市县三级联动的示例代码,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马不认输

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值