javascript实现全国省市区县多级联动 2013最新最全数据

45 篇文章 1 订阅
28 篇文章 3 订阅

demo和下载地址:http://www.baletu.com/open/

自己写的,命名为panregion.js

Pan Region

panregion.js 是一款基于javascript实现的中国省市区上级联动效果。本插件是永久开源免费的。

内置3000多条全国最新的数据,是目前网络上数据最完整的一个小插件,数据摘取自2013年。体积只有175kb.

省市区多级联动,使用javascript的好处是,不需要服务器上面存放任何信息,也不需要频繁的刷新,也不需要和客户的有任何数据交互。大大的提高了效率和用户体验

功能:

1、省市区多级联动

2、全国地区检索,输入拼音或者汉字,就可以模糊查询匹配的地区数据。


下载地址:

直接引用地址:http://www.baletu.com/open/js/panregion.js


效果展示:

默认选中:     

使用文档:

1、引入javascript文件:<script type="text/javascript" src="panregion.js" charset="gbk"></script>

特别注意: 引入javascript文件的时候,必须加charset="gbk"这个属性,不然中文会乱码。

2、实例化对象 

var pan=new Pan();

3、传入对象id

 pan.read('Province','City','area'); 

方法:
1、设置默认选中值,必须要再read方法之后,否则无效
pan.setDefaultValues('湖南省','长沙市','开福区');

2、设置默认提示,必须要再read方法之前,否则无效

pan.setDefaultOption('select');

3、通过地区名 模糊查找数据,返回array数组

pan.findByName('天');

4、通过拼音查模糊找地区,返回array数组

pan.findBySpell('beijing');

5、拼音或者中文都自动转换查询,返回array数组

pan.findByString('北京');

6、$$(id) id选择器

$$()这个方法,传入id名,返回id的实例

注:没有加注释,没有介绍到的方法都是内部方法,请勿直接使用,否则会影响内部计算。

FAQ:

1、为什么引入之后无任何反应?

请检查你得配置路径是否正确

2、出现中文乱码?

请在<script>脚本上加入属性charset="gbk" 给引用的脚本指定编码格式 正确示例<script type="text/javascript" src="panregion.js" charset="gbk"></script>

3、模糊查找地区找不到?

本插件暂时只支持省、市区、县 这三级,或许你输入的不在这之中,如果发现有数据遗漏请及时联系我们

4、无法对多个对象进行操作?

当使用本插件之后,一个面页最多只支持一组省市区联动,下个版本将会支持多个对象

5、这个插件是否会一直持续更新?

以后将会一直保持这个插件的更新,继续完善数据,保证数据最全最新。

关于:

QQ群:273759216

QQ:599194993

邮箱:pan@baletu.com


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 layui 中,可以通过使用下拉框的 onchange 事件来实现级联效果。具体实现步骤如下: 1. 定义省份、城市、区县的下拉框: ```html <select name="province" lay-filter="province"> <option value="">请选择省份</option> <option value="1">湖南省</option> <option value="2">广东省</option> ... </select> <select name="city" lay-filter="city"> <option value="">请选择城市</option> </select> <select name="district" lay-filter="district"> <option value="">请选择区县</option> </select> ``` 2. 在 JavaScript 中编写下拉框的 onchange 事件: ```javascript <script> layui.use(['form'], function(){ var form = layui.form; // 监听省份下拉框的选择事件 form.on('select(province)', function(data){ // 获取当前选择的省份 var provinceId = data.value; // 清空城市下拉框的选项 $("select[name='city']").html("<option value=''>请选择城市</option>"); // 清空区县下拉框的选项 $("select[name='district']").html("<option value=''>请选择区县</option>"); // 如果省份不为空,则通过 Ajax 请求获取对应的城市列表 if(provinceId != ''){ $.get("/api/city?provinceId="+provinceId,function(data){ // 循环添加城市选项 for(var i=0;i<data.length;i++){ $("select[name='city']").append("<option value='"+data[i].cityId+"'>"+data[i].cityName+"</option>"); } // 重新渲染城市下拉框 form.render('select'); }); } }); // 监听城市下拉框的选择事件 form.on('select(city)', function(data){ // 获取当前选择的城市 var cityId = data.value; // 清空区县下拉框的选项 $("select[name='district']").html("<option value=''>请选择区县</option>"); // 如果城市不为空,则通过 Ajax 请求获取对应的区县列表 if(cityId != ''){ $.get("/api/district?cityId="+cityId,function(data){ // 循环添加区县选项 for(var i=0;i<data.length;i++){ $("select[name='district']").append("<option value='"+data[i].districtId+"'>"+data[i].districtName+"</option>"); } // 重新渲染区县下拉框 form.render('select'); }); } }); }); </script> ``` 3. 在服务器端编写对应的 API 接口,用于根据省份和城市获取对应的城市和区县列表。 以上就是 layui 实现级联的简单示例。 ### 回答2: layui是一款基于jQuery的前端UI框架,其中的select多级联组件可以实现多级下拉菜单之间的关联。使用layui的select多级联组件,可以通过简单的代码实现省市区级联或其他自定义的多级联效果。 首先,我们需要引入layui的资源文件,并初始化一个select实例。然后,设置select的外观样式和数据源。 接下来,我们需要定义各级选项的数据源。可以使用数组或JSON对象来表示。第一级的选项数据可以直接写在html中,而后续级的选项数据可以使用layui的form组件的on()方法来监听前一级的选择事件,并根据选择的值态加载后续级的选项数据。 在监听事件的回调函数中,我们可以根据前一级的选择值来态生成后续级的选项数据,并使用layui的select组件的render()方法重新渲染后续级的select实例,实现级联的效果。 例如,如果要实现省市区级联,可以定义一个省级的select实例,并设置省级选项数据。接着,监听省级select实例的选择事件,在回调函数中根据选择的省份态生成市级的选项数据,并使用layui的select组件的render()方法重新渲染市级的select实例。然后,再监听市级select实例的选择事件,在回调函数中态生成区级的选项数据,并重新渲染区级的select实例。 通过这样的方式,就可以实现layui的select多级联的效果。 总之,layui的select多级联组件可以方便地实现多级下拉菜单之间的关联,通过监听选择事件和态生成选项数据实现效果。使用layui的select多级联组件可以提升用户体验,增强网站的交互性。 ### 回答3: Layui是一个快速构建前端界面的模块化框架,它提供了多种常用的UI组件。其中的select多级联是指在一个表单中的多个下拉列表之间建立关联,选择一个下拉列表的选项会影响另一个下拉列表的选项内容。 在Layui中,实现select多级联有以下几个步骤: 1. 在HTML中定义对应的下拉列表元素,给每个下拉列表元素设置一个唯一的id。 2. 在JavaScript中使用Layui的form模块,使用form.on方法监听每个下拉列表的选择事件。 3. 在监听事件中获取当前选择的选项值,并根据该值设置下一个下拉列表的选项。 下面以一个三级联为例进行说明: HTML代码: ```html <select id="province"> <option value="">请选择省份</option> <option value="广东省">广东省</option> <option value="江苏省">江苏省</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JavaScript代码: ```javascript layui.use('form', function () { var form = layui.form; // 监听省份下拉列表的选择事件 form.on('select(province)', function (data) { var province = data.value; if (province === '广东省') { // 态设置城市下拉列表的选项 $('#city').html('<option value="广州市">广州市</option><option value="深圳市">深圳市</option>'); } else if (province === '江苏省') { // 态设置城市下拉列表的选项 $('#city').html('<option value="南京市">南京市</option><option value="苏州市">苏州市</option>'); } else { // 清空城市下拉列表的选项 $('#city').html('<option value="">请选择城市</option>'); } // 清空区县下拉列表的选项 $('#district').html('<option value="">请选择区县</option>'); // 重新渲染下拉列表 form.render('select'); }); // 监听城市下拉列表的选择事件 form.on('select(city)', function (data) { var city = data.value; if (city === '广州市') { // 态设置区县下拉列表的选项 $('#district').html('<option value="天河区">天河区</option><option value="海珠区">海珠区</option>'); } else if (city === '深圳市') { // 态设置区县下拉列表的选项 $('#district').html('<option value="福田区">福田区</option><option value="罗湖区">罗湖区</option>'); } else if (city === '南京市') { // 态设置区县下拉列表的选项 $('#district').html('<option value="玄武区">玄武区</option><option value="鼓楼区">鼓楼区</option>'); } else if (city === '苏州市') { // 态设置区县下拉列表的选项 $('#district').html('<option value="姑苏区">姑苏区</option><option value="吴中区">吴中区</option>'); } else { // 清空区县下拉列表的选项 $('#district').html('<option value="">请选择区县</option>'); } // 重新渲染下拉列表 form.render('select'); }); }); ``` 以上代码实现了一个三级联的效果,根据选择的省份和城市态改变区县下拉列表的选项内容。在监听选择事件时,根据选择的选项值设置下一个下拉列表的选项,并通过form.render('select')重新渲染下拉列表,使其生效。 注意,在使用Layui的select多级联前,需要先引入Layui的相关资源文件,如layui.js和layui.css。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值