jQuery实现的省市联动菜单功能示例【测试可用】

我来为你讲解一下如何实现“jQuery实现的省市联动菜单功能示例【测试可用】”:

一、介绍

这是一篇介绍如何使用 jQuery 实现省市联动菜单的文章。我们通过两个下拉菜单(省、市)实现了联动选择,当选择省份时,市级下拉菜单会根据选中的省份自动更新,只显示该省份对应的市级选项。

二、HTML 结构

使用 jQuery 实现省市联动菜单首先需要构建好 HTML 的结构。下面是一个简单的 HTML 结构示例:

<!--省份下拉菜单-->
<label for="province">省份:</label>
<select id="province">
  <option value="">请选择</option>
  <option value="1">北京</option>
  <option value="2">上海</option>
  <option value="3">广东</option>
  <option value="4">湖南</option>
</select>

<!--城市下拉菜单-->
<label for="city">城市:</label>
<select id="city" disabled>
  <option value="">请选择</option>
</select>

我们使用 <label> 标签为省份和城市下拉菜单添加标签,使得用户更好的理解下拉菜单的用途。对于省份和城市的选择,我们使用 <select> 标签,通过 <option> 标签设置选项的值和显示文本。此外,我们还通过添加 disabled 属性使城市下拉菜单默认不可用,用户必须选择省份后才能使用城市下拉菜单。

三、jQuery 实现

下面是实现省市联动菜单的 jQuery 代码示例:

$(function(){
  // 省市信息数组
  var provinces = [
    {name:"北京", cities:["北京市"]},
    {name:"上海", cities:["上海市"]},
    {name:"广东", cities:["广州市","深圳市","东莞市","佛山市","珠海市"]},
    {name:"湖南", cities:["长沙市","株洲市","衡阳市","邵阳市","岳阳市"]}
  ];

  // 当省份选项发生改变时
  $("#province").change(function(){
    // 获取当前选中的省份
    var current_province = $(this).children("option:selected").text();
    // 根据当前选中的省份获取该省份对应的城市数组
    var current_cities = [];
    $.each(provinces,function(index,value){
      if(value.name === current_province){
        current_cities = value.cities;
        return false;
      }
    });
    // 清空城市下拉菜单,并添加当前省份对应的城市选项
    var $city = $("#city");
    $city.children().not(":first").remove();
    $.each(current_cities,function(index,value){
        $city.append("<option value='"+value+"'>"+value+"</option>");
    });
    // 恢复城市下拉菜单的可用状态
    $city.prop("disabled",false);
  });
});

我们使用了 $(function(){}) 将整个 jQuery 代码封装在一个自执行函数中,以确保代码在页面加载完成后运行。

首先,我们声明了一个数组 provinces 存储了所有省份和对应的城市数据。然后,通过 $("#province").change() 监听省份下拉菜单的改变事件。当省份选项发生改变时,我们获取当前选中的省份,再根据当前选中的省份获取该省份对应的城市数组,根据城市数组清空城市下拉菜单,并添加当前省份对应的城市选项。最后,恢复城市下拉菜单的可用状态。

四、示例说明

示例一:添加新的省份和城市

如果需要添加新的省份和城市,只需要在 provinces 数组中添加相应的数据即可,如下所示:

var provinces = [
  {name:"北京", cities:["北京市"]},
  {name:"上海", cities:["上海市"]},
  {name:"广东", cities:["广州市","深圳市","东莞市","佛山市","珠海市"]},
  {name:"湖南", cities:["长沙市","株洲市","衡阳市","邵阳市","岳阳市"]},
  {name:"新疆", cities:["乌鲁木齐市","克拉玛依市","伊犁哈萨克自治州","巴音郭楞蒙古自治州","阿勒泰地区"]}
];

这样,所有的省份和城市数据就可以更新了。如果要在页面上显示新增的省份和城市,在省份下拉菜单中添加新的选项即可。

示例二:使用 Remote 数据

通过 AJAX 获取省市数据后生成联动菜单也是一个常见的需求。如果数据比较大,写到 js 里会臃肿,不易更新及维护。
我们可以使用了 select2 的 Ajax 功能来实现。

<select data-placeholder="Choose a Country..." class="select2-ajax-select"
        data-ajax-url="./data/countries-three-children.php"
        data-root="countries" data-post-keyword="name" data-post-id="id"
        data-loading="Loading..."
        >
</select>

具体实现可以参考 select2 官网教程,需要服务器提供 json 格式的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现的省市联动菜单功能示例【测试可用】 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxGrid addfilter()方法

    以下是关于“jQWidgets jqxGrid addfilter()方法”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 addfilter() 方法用于向表格添加滤器。过滤可以用于筛选表格的数据,以便只显示符合特定条件的行。addfilter() 方法的语法如下: $("#grid").jqxGrid(‘addfilte…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTreeMap hoverEnabled属性

    以下是关于 jQWidgets jqxTreeMap 组件中 hoverEnabled 属性的详细攻略。 jQWidgets jqxTreeMap hoverEnabled 属性 jQWidgets jqxTreeMap 的 hoverEnabled 属性用于启用或禁用标悬停事件。您可以使用此属性来控制是否允许用户在鼠标悬停时查看数据项的详细信息。 语法 $…

    jquery 2023年5月12日
    00
  • 基于jQuery实现表格的排序

    下面我将为您详细讲解基于jQuery实现表格的排序的完整攻略,包含以下几个部分的内容: 添加jQuery库 准备表格 添加排序按钮 实现表格排序 1. 添加jQuery库 首先,在您的网页中添加jQuery库,可以使用CDN方式引入(常用的CDN有百度云、新浪等),也可以将jQuery文件下载至本地并引入。 <script src="http…

    jquery 2023年5月28日
    00
  • jQuery基础知识点总结(必看)

    jQuery基础知识点总结(必看) 什么是jQuery? jQuery是一个JavaScript库,它让HTML文档的遍历和操作,事件处理,动画和AJAX等操作更加简洁和方便。 jQuery的引入 在HTML文件中引入jQuery有两种方式,一种是通过CDN引入,另一种是下载jQuery文件并引入到HTML文件中。 CDN引入 在HTML文件中引入jQuer…

    jquery 2023年5月27日
    00
  • jQuery UI Tooltips追踪选项

    以下是关于 jQuery UI Tooltips 追踪选项的详细攻略: jQuery UI Tooltips 追踪选项 可以使用追踪选项来控制工具提示小部件是否应该跟随鼠标移动。 语法 $(selector).tooltip({ track: true }); 参数 track: 一个布尔值,指示工具提示小部件是否应该跟随鼠标移动。默认为 false。 示例…

    jquery 2023年5月11日
    00
  • jQuery prevUntil()实例

    以下是关于jQuery中prevUntil()方法的完整攻略: 什么是prevUntil()方法? prevUntil()方法是jQuery中的一个筛选方法,用于选择匹配元素集合中每个元素前面的所有兄弟元素,直到遇到指定的元素为止。 如何使用prevUntil()方法? 使用以下代码来使用prevUntil()方法: $(selector).prevUnti…

    jquery 2023年5月12日
    00
  • jQuery UI Tabs disable()方法

    jQuery UI 的 Tabs 组件提供了一个 disable() 方法,该方法用于禁用指定的 Tab。在本教程中,我们将详细介绍 Tabs disable() 方法的使用方法。 disable() 方法基本语法如下: $( ".selector" ).tabs( "disable", index ); 其中,”.s…

    jquery 2023年5月11日
    00
  • JQuery实现倒计时按钮具体方法

    下面是JQuery实现倒计时按钮的具体方法攻略: 1.引入JQuery库 在html文件头部引入JQuery库,例如: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.0/jquery.min.js"></script> 2.实现倒计时函数 在JS…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部