欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

jQuery中国省市区地址三级联动插件Distpicker 有大用

jQuery中国省市区地址三级联动插件Distpicker

所属分类:输入-选择框

  36582   138   查看评论 (43)
 
 
jQuery中国省市区地址三级联动插件Distpickerie兼容6

简要教程

安装

可以通过npm或bower来安装该三级联动插件。

  • npm install distpicker

  • bower install distpicker                  

Installation

 

Include files:

<script src="/path/to/jquery.js"></script><!-- jQuery is required -->
<script src="/path/to/distpicker.js"></script>


使用方法

HTML结构

基本的HTML结构是使用一个<div>容器来包裹一组<select>元素。

1
2
3
4
5
<div><!-- container -->
  <select></select><!-- 省 -->
  <select></select><!-- 市 -->
  <select></select><!-- 区 -->
</div>

你可以直接通过data-toggle="distpicker"实现来进行初始化。

1
2
3
4
5
<div data-toggle="distpicker"><!-- container -->
  <select></select><!-- 省 -->
  <select></select><!-- 市 -->
  <select></select><!-- 区 -->
</div>

也可以显示占位文本。

1
2
3
4
5
<div data-toggle="distpicker">
  <select data-province="---- 选择省 ----"></select>
  <select data-city="---- 选择市 ----"></select>
  <select data-district="---- 选择区 ----"></select>
</div>

或者自定义省市区。

1
2
3
4
5
<div data-toggle="distpicker">
  <select data-province="浙江省"></select>
  <select data-city="杭州市"></select>
  <select data-district="西湖区"></select>
</div>

初始化插件

在页面DOM元素加载完毕之后,可以通过distpicker()方法来初始化该地址联动插件。

1
$('#target').distpicker();

自定义占位文本:

1
2
3
4
5
$('#target').distpicker({
  province: '---- 所在省 ----',
  city: '---- 所在市 ----',
  district: '---- 所在区 ----'
});

自定义省市区。

1
2
3
4
5
$('#target').distpicker({
  province: '浙江省',
  city: '杭州市',
  district: '西湖区'
});

配置参数

可以通过以下代码来修改默认的配置参数,

1
$().distpicker(options)

 

通过以下代码来修改全局默认参数。

1
$.fn.distpicker.setDefaults(options)
1
2
3
4
5
autoSelect:类型:Boolean,默认值:true。是否当省改变时自动选择市和区。
placeholder:类型:Boolean,默认值:true。是否显示占位文本。
province:类型:String,默认值:―― 省 ――。定义省份的初始值。如果在distpicker.data.js文件中存在该省份,将会被选择,否则显示占位文本。
city:类型:String,默认值:―― 市 ――。定义市的初始值。如果在distpicker.data.js文件中存在该市,将会被选择,否则显示占位文本。
district:类型:String,默认值:―― 区 ――。定义区的初始值。如果在distpicker.data.js文件中存在该区,将会被选择,否则显示占位文本。

方法

  • reset([deep]):重置select为初始状态。

  • deep (optional):类型:Boolean,默认值:false。重置select为初始状态。

例如:

1
2
3
$().distpicker('reset');
$().distpicker('reset'true);
destroy():销毁插件实例。

 

PREVIOUS:
NEXT:
 
 

    相关插件-选择框

    LArea移动端城市选择控件

    纯原生js的移动端城市选择插件,不依赖任何库
       选择框
      24632   82
     

    Jquery实现角色左右选择特效

    简单的jquery实现左右角色的互选功能
       选择框
      8820   52
     

    jQuery自定义下拉框美化

    自定义下拉框美化(可以自定义样式)
       选择框
      5703   40
     

    radio checkbox

    利用css3技术,实现替代浏览器自带的radio checkbox功能。不用js技术,纯轻量级的。
       选择框
      6495   26
     
     

    讨论这个项目(43)回答他人问题或分享插件使用方法奖励jQ币

    是不三先生
    2017/4/1 16:31:25
     

      怎么赋值啊?

      回复
       
       
        番茄炒蛋不加蛋
        2017/3/11 13:19:24
         

          如何可以更改data-toggle=‘distpicker‘的识别值,我想把这个改成自己用的类型,但是这个最初的下拉框还是要用到

          回复
           
           
            CHAR
            2017/3/1 18:01:55
             

              在js文件中通过ajax获取地址,如何在前端 这个插件里显示获取的地址啊,希望尽早回复,急用,谢谢!

              回复
               
               
              • 一一封荷评论奖励 1 jQ币
                2017/3/7 17:05:09
                 

                  获取什么地址??

                  如果是选择的省市,给select添加一个id

                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  <li data-toggle="distpicker">
                      <label>所在城市</label>
                      <select id="prov" class="prov"></select>
                      <select id="city" class="city"></select>
                  </li>
                  var prov= $('#prov').val(),
                  city = $('#city').val();
                      在我的怀里你不用害怕失眠
                      2017/3/7 18:23:50
                       
                        • 怎么给id="prov" 赋值啊    $('#prov').val("123");这样复制为什么是空
                          
                        2017/2/25 18:47:29
                         

                          怎么将值传给另一个页面?

                          回复
                           
                           
                          • 一一封荷评论奖励 1 jQ币
                            2017/3/7 16:45:28
                             

                              可以通过A页面ajax post传值给B页面,或者通过URL后面附带参数

                                何元祥 评论奖励 3 jQ币
                                2017/2/15 13:01:35
                                 
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  17
                                  18
                                  19
                                  20
                                  21
                                  22
                                  23
                                  24
                                  25
                                  26
                                  27
                                  28
                                  29
                                  30
                                  31
                                  32
                                  33
                                  34
                                  35
                                  36
                                  37
                                  38
                                  39
                                  40
                                  41
                                  42
                                  43
                                  44
                                  45
                                  46
                                  47
                                  48
                                  49
                                  50
                                  51
                                  52
                                  53
                                  // 获取地区控件所有汉字
                                  $("#distpicker option:checked").text()
                                   
                                  // 重置地区控件到第一行(有占位符显示占位符)
                                  $("#distpicker").distpicker('reset'true);
                                   
                                  // 地区定位(地名)
                                  function distpickerPositionByAddress(province, city, district) {
                                      var $province = $("#province");
                                      var $city = $("#city");
                                      var $district = $("#district");
                                      $province.val(province);
                                      $province.trigger("change");
                                      $city.val(city);
                                      $city.trigger("change");
                                      $district.val(district);
                                      $district.trigger("change");
                                  }
                                   
                                  // 地区定位(编码)
                                  function distpickerPositionByCode(districtCode) {
                                      var provinceCode = parseInt(parseInt(districtCode) / 10000) * 10000;
                                      var cityCode = parseInt(parseInt(districtCode) / 100) * 100;
                                      var $province = $("#province");
                                      var $city = $("#city");
                                      var $district = $("#district");
                                      var province = ChineseDistricts[86][provinceCode];
                                      var city = ChineseDistricts[provinceCode][cityCode];
                                      var district = ChineseDistricts[cityCode][districtCode];
                                      $province.val(province);
                                      $province.trigger("change");
                                      $city.val(city);
                                      $city.trigger("change");
                                      $district.val(district);
                                      $district.trigger("change");
                                  }
                                   
                                  // 根据地区级别获取编码 1=省;2=市;3=区县
                                  function getDataCode(areaLv) {
                                      switch (areaLv) {
                                          case 1:
                                              return $('#province :selected').attr("data-code");
                                              break;
                                          case 2:
                                              return $('#city :selected').attr("data-code");
                                              break;
                                          case 3:
                                              return $('#district :selected').attr("data-code");
                                              break;
                                          default:
                                              return $('#district :selected').attr("data-code");
                                      }
                                  }

                                  觉得可以或者有问题请回复

                                  回复
                                   
                                   
                                    詹书斌
                                    2017/2/13 14:31:03
                                     

                                      怎么获取选择后的值呢?

                                      回复
                                       
                                       
                                      • '''
                                        2017/2/27 16:48:39
                                         

                                          会了么?

                                            嘴角淡然一笑、ㄋ枫
                                            2017/1/19 12:10:43
                                             

                                              找到数据源了 但是 我想用ajax替换成我的数据源 比如替换成食物类别-》食物 这样的 分类 该怎么去分配规则呢 原数据源的 数字代表什么呢 不用数字可以吗?可以替换吗?

                                              回复
                                               
                                               
                                              • 一一封荷评论奖励 1 jQ币
                                                2017/3/7 16:51:15
                                                 

                                                  数字只是key,不用管就好了,在.data.js里面直接把省、市这些值改成你想要的就好了

                                                    嘴角淡然一笑、ㄋ枫
                                                    2017/1/19 11:55:56
                                                     

                                                      特别像知道  我不想用他的哪个数据源 我像用我的数据源 该怎么放进去?

                                                      回复
                                                       
                                                       
                                                        呵呵
                                                        2017/1/13 10:01:10
                                                         

                                                           请问怎么改变数据源

                                                          回复
                                                           
                                                           
                                                            W.V
                                                            2016/12/23 16:12:45
                                                             

                                                              我想默认显示 这个  "---- 选择省 ----" 

                                                              初始化了  没用

                                                              1
                                                              2
                                                              3
                                                              4
                                                              5
                                                              6
                                                              7
                                                              8
                                                              $(".district").distpicker('destroy');
                                                              $(".district").distpicker({
                                                                  province: '---- 所在省 ----',
                                                                  city: '---- 所在市 ----',
                                                                  district: '---- 所在区 ----',
                                                                  autoSelect: true,
                                                                  placeholder: false
                                                              });
                                                              回复
                                                               
                                                               
                                                              • W.V
                                                                2016/12/23 16:12:52
                                                                 

                                                                   错了 是   placeholder: true

                                                                      W.V
                                                                      2016/12/23 16:12:32
                                                                       

                                                                        还是没用

                                                                            何元祥
                                                                            2017/2/14 17:03:39
                                                                             
                                                                              1
                                                                              $(".district").distpicker('reset'true);
                                                                                  一一封荷评论奖励 1 jQ币
                                                                                  2017/3/7 16:56:26
                                                                                   

                                                                                    在distpicker.js里面找到下面的内容,

                                                                                    1
                                                                                    2
                                                                                    3
                                                                                    4
                                                                                    5
                                                                                    6
                                                                                    7
                                                                                    e.DEFAULTS = {
                                                                                        autoSelect: !0,
                                                                                        placeholder: !0,
                                                                                        province: "省",
                                                                                        city: "市",
                                                                                        district: "区"
                                                                                    },

                                                                                    把autoSelect改成0(也就是false)

                                                                                      A simple jQuery plugin for picking provinces, cities and districts of China. (中国 / 省市区 / 三级联动 / 地址选择器)
                                                                                      JavaScript
                                                                                      Latest commit 97a8621 on 4 Mar@fengyuanchen  Release v2.0.0-rc

                                                                                       README.md

                                                                                      Distpicker

                                                                                      CDNJS

                                                                                      A simple jQuery plugin for picking provinces, cities and districts of China.

                                                                                      Table of contents

                                                                                      Main

                                                                                      dist/
                                                                                      ├── distpicker.js     (98 KB)
                                                                                      └── distpicker.min.js (71 KB)
                                                                                      

                                                                                      Getting started

                                                                                      Quick start

                                                                                      Four quick start options are available:

                                                                                      • Download the latest release.
                                                                                      • Clone the repository: git clone https://github.com/fengyuanchen/distpicker.git.
                                                                                      • Install with NPMnpm install distpicker.
                                                                                      • Install with Bowerbower install distpicker.

                                                                                      Installation

                                                                                      Include files:

                                                                                      <script src="/path/to/jquery.js"></script><!-- jQuery is required -->
                                                                                      <script src="/path/to/distpicker.js"></script>

                                                                                      Create HTML elements:

                                                                                      <div><!-- container -->
                                                                                        <select></select><!-- province -->
                                                                                        <select></select><!-- city -->
                                                                                        <select></select><!-- district -->
                                                                                      </div>

                                                                                      Usage

                                                                                      Initialize with data-toggle="distpicker" attribute

                                                                                      Basic

                                                                                      <div data-toggle="distpicker">
                                                                                        <select></select>
                                                                                        <select></select>
                                                                                        <select></select>
                                                                                      </div>

                                                                                      Custom placeholders

                                                                                      <div data-toggle="distpicker">
                                                                                        <select data-province="---- 选择省 ----"></select>
                                                                                        <select data-city="---- 选择市 ----"></select>
                                                                                        <select data-district="---- 选择区 ----"></select>
                                                                                      </div>

                                                                                      Custom districts

                                                                                      <div data-toggle="distpicker">
                                                                                        <select data-province="浙江省"></select>
                                                                                        <select data-city="杭州市"></select>
                                                                                        <select data-district="西湖区"></select>
                                                                                      </div>

                                                                                      Initialize with $.fn.distpicker method

                                                                                      Basic

                                                                                      $('#target').distpicker();

                                                                                      Custom placeholders

                                                                                      $('#target').distpicker({
                                                                                        province: '---- 所在省 ----',
                                                                                        city: '---- 所在市 ----',
                                                                                        district: '---- 所在区 ----'
                                                                                      });

                                                                                      Custom districts

                                                                                      $('#target').distpicker({
                                                                                        province: '浙江省',
                                                                                        city: '杭州市',
                                                                                        district: '西湖区'
                                                                                      });

                                                                                      ⬆ back to top

                                                                                      Options

                                                                                      • Change the default options with $().distpicker(options).
                                                                                      • Change the global default options with $.fn.distpicker.setDefaults(options).

                                                                                      Also supports to set the options by data-* attributes:

                                                                                      <div data-toggle="distpicker" data-autoselect="3" data-province="浙江省">...</div>

                                                                                      autoselect

                                                                                      • Type: Number
                                                                                      • Options:
                                                                                        • 0: Disable autoselect.
                                                                                        • 1: Autoselect province only.
                                                                                        • 2: Autoselect province and city only.
                                                                                        • 3: Autoselect all (province, city and district).
                                                                                      • Default: 0

                                                                                      Selects the districts automatically.

                                                                                      placeholder

                                                                                      • Type: Boolean
                                                                                      • Default: true

                                                                                      Show placeholder (with an <option> element).

                                                                                      valueType

                                                                                      • Type: String
                                                                                      • Oprions:
                                                                                        • 'name': administrative division name.
                                                                                        • 'code': administrative division code.
                                                                                      • Default: 'name'

                                                                                      Defines the value type of the <select> element.

                                                                                      province

                                                                                      • Type: String
                                                                                      • Default: —— 省 ——

                                                                                      Defines the initial value of province <select>. If it is a valid province, it will be selected. If not, it will be used as a placeholder.

                                                                                      city

                                                                                      • Type: String
                                                                                      • Default: —— 市 ——

                                                                                      Defines the initial value of city <select>. If it is a valid city under the selected province, it will be selected. If not, it will be used as a placeholder.

                                                                                      district

                                                                                      • Type: String
                                                                                      • Default: —— 区 ——

                                                                                      Defines the initial value of district <select>. If it is a valid district under the selected city, it will be selected. If not, it will be used as a placeholder.

                                                                                      ⬆ back to top

                                                                                      Methods

                                                                                      getDistricts([districtCode])

                                                                                      • districtCode (optional):

                                                                                        • Type: Number
                                                                                        • The district code of target country, province or city.
                                                                                        • If not present, will return all the districts.
                                                                                      • (return value):

                                                                                        • Type: Object

                                                                                      Get districts data.

                                                                                      $().distpicker('getDistricts'); // 中国
                                                                                      $().distpicker('getDistricts', 330000); // 浙江省
                                                                                      $().distpicker('getDistricts', 330100); // 杭州市

                                                                                      reset([deep])

                                                                                      • deep (optional):
                                                                                        • Type: Boolean
                                                                                        • Default: false
                                                                                        • Reset the selects to default states (Undo selected).

                                                                                      Reset the selects to the initial states (Undo changed).

                                                                                      $().distpicker('reset');
                                                                                      $().distpicker('reset', true);

                                                                                      destroy()

                                                                                      Destroy the distpicker instance, but keep the selected districts.

                                                                                      If you want to remove the selected districts, you can call reset method first and then call this method.

                                                                                      ⬆ back to top

                                                                                      No conflict

                                                                                      If you have to use other plugin with the same namespace, just call the $.fn.distpicker.noConflict method to revert to it.

                                                                                      <script src="other-plugin.js"></script>
                                                                                      <script src="distpicker.js"></script>
                                                                                      <script>
                                                                                        $.fn.distpicker.noConflict();
                                                                                        // Code that uses other plugin's "$().distpicker" can follow here.
                                                                                      </script>

                                                                                      Browser support

                                                                                      • Chrome (latest)
                                                                                      • Firefox (latest)
                                                                                      • Safari (latest)
                                                                                      • Opera (latest)
                                                                                      • Edge (latest)
                                                                                      • Internet Explorer 9+

                                                                                      As a jQuery plugin, you also need to see the jQuery Browser Support.

                                                                                      License

                                                                                      MIT © Fengyuan Chen

                                                                                      ⬆ back to top

                                                                                      来自  https://github.com/fengyuanchen/distpicker
                                                                                      普通分类: