介绍
创建一个省-市-区 (省市区) 三级联动下拉列表,用于选择中国的地理位置。这种功能通常用在用户需要选择其位置的表单中,本文将使用 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>
复制