| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 | 
							- /*!
 
-  * Distpicker v1.0.4
 
-  * https://github.com/fengyuanchen/distpicker
 
-  *
 
-  * Copyright (c) 2014-2016 Fengyuan Chen
 
-  * Released under the MIT license
 
-  *
 
-  * Date: 2016-06-01T15:05:52.606Z
 
-  */
 
- (function (factory) {
 
-   if (typeof define === 'function' && define.amd) {
 
-     // AMD. Register as anonymous module.
 
-     define(['jquery', 'ChineseDistricts'], factory);
 
-   } else if (typeof exports === 'object') {
 
-     // Node / CommonJS
 
-     factory(require('jquery'), require('ChineseDistricts'));
 
-   } else {
 
-     // Browser globals.
 
-     factory(jQuery, ChineseDistricts);
 
-   }
 
- })(function ($, ChineseDistricts) {
 
-   'use strict';
 
-   if (typeof ChineseDistricts === 'undefined') {
 
-     throw new Error('The file "distpicker.data.js" must be included first!');
 
-   }
 
-   var NAMESPACE = 'distpicker';
 
-   var EVENT_CHANGE = 'change.' + NAMESPACE;
 
-   var PROVINCE = 'province';
 
-   var CIRY = 'city';
 
-   var DISTRICT = 'district';
 
-   function Distpicker(element, options) {
 
-     this.$element = $(element);
 
-     this.options = $.extend({}, Distpicker.DEFAULTS, $.isPlainObject(options) && options);
 
-     this.placeholders = $.extend({}, Distpicker.DEFAULTS);
 
-     this.active = false;
 
-     this.init();
 
-   }
 
-   Distpicker.prototype = {
 
-     constructor: Distpicker,
 
-     init: function () {
 
-       var options = this.options;
 
-       var $select = this.$element.find('select');
 
-       var length = $select.length;
 
-       var data = {};
 
-       $select.each(function () {
 
-         $.extend(data, $(this).data());
 
-       });
 
-       $.each([PROVINCE, CIRY, DISTRICT], $.proxy(function (i, type) {
 
-         if (data[type]) {
 
-           options[type] = data[type];
 
-           this['$' + type] = $select.filter('[data-' + type + ']');
 
-         } else {
 
-           this['$' + type] = length > i ? $select.eq(i) : null;
 
-         }
 
-       }, this));
 
-       this.bind();
 
-       // Reset all the selects (after event binding)
 
-       this.reset();
 
-       this.active = true;
 
-     },
 
-     bind: function () {
 
-       if (this.$province) {
 
-         this.$province.on(EVENT_CHANGE, (this._changeProvince = $.proxy(function () {
 
-           this.output(CIRY);
 
-           this.output(DISTRICT);
 
-         }, this)));
 
-       }
 
-       if (this.$city) {
 
-         this.$city.on(EVENT_CHANGE, (this._changeCity = $.proxy(function () {
 
-           this.output(DISTRICT);
 
-         }, this)));
 
-       }
 
-     },
 
-     unbind: function () {
 
-       if (this.$province) {
 
-         this.$province.off(EVENT_CHANGE, this._changeProvince);
 
-       }
 
-       if (this.$city) {
 
-         this.$city.off(EVENT_CHANGE, this._changeCity);
 
-       }
 
-     },
 
-     output: function (type) {
 
-       var options = this.options;
 
-       var placeholders = this.placeholders;
 
-       var $select = this['$' + type];
 
-       var districts = {};
 
-       var data = [];
 
-       var code;
 
-       var matched;
 
-       var value;
 
-       if (!$select || !$select.length) {
 
-         return;
 
-       }
 
-       value = options[type];
 
-       code = (
 
-         type === PROVINCE ? 86 :
 
-         type === CIRY ? this.$province && this.$province.find(':selected').data('code') :
 
-         type === DISTRICT ? this.$city && this.$city.find(':selected').data('code') : code
 
-       );
 
-       districts = $.isNumeric(code) ? ChineseDistricts[code] : null;
 
-       if ($.isPlainObject(districts)) {
 
-         $.each(districts, function (code, address) {
 
-           var selected = address === value;
 
-           if (selected) {
 
-             matched = true;
 
-           }
 
-           data.push({
 
-             code: code,
 
-             address: address,
 
-             selected: selected
 
-           });
 
-         });
 
-       }
 
-       if (!matched) {
 
-         if (data.length && (options.autoSelect || options.autoselect)) {
 
-           data[0].selected = true;
 
-         }
 
-         // Save the unmatched value as a placeholder at the first output
 
-         if (!this.active && value) {
 
-           placeholders[type] = value;
 
-         }
 
-       }
 
-       // Add placeholder option
 
-       if (options.placeholder) {
 
-         data.unshift({
 
-           code: '',
 
-           address: placeholders[type],
 
-           selected: false
 
-         });
 
-       }
 
-       $select.html(this.getList(data));
 
-     },
 
-     getList: function (data) {
 
-       var list = [];
 
-       $.each(data, function (i, n) {
 
-         list.push(
 
-           '<option' +
 
-           ' value="' + (n.address && n.code ? n.address : '') + '"' +
 
-           ' data-code="' + (n.code || '') + '"' +
 
-           (n.selected ? ' selected' : '') +
 
-           '>' +
 
-             (n.address || '') +
 
-           '</option>'
 
-         );
 
-       });
 
-       return list.join('');
 
-     },
 
-     reset: function (deep) {
 
-       if (!deep) {
 
-         this.output(PROVINCE);
 
-         this.output(CIRY);
 
-         this.output(DISTRICT);
 
-       } else if (this.$province) {
 
-         this.$province.find(':first').prop('selected', true).trigger(EVENT_CHANGE);
 
-       }
 
-     },
 
-     destroy: function () {
 
-       this.unbind();
 
-       this.$element.removeData(NAMESPACE);
 
-     }
 
-   };
 
-   Distpicker.DEFAULTS = {
 
-     autoSelect: true,
 
-     placeholder: true,
 
-     province: '—— 省 ——',
 
-     city: '—— 市 ——',
 
-     district: '—— 区 ——'
 
-   };
 
-   Distpicker.setDefaults = function (options) {
 
-     $.extend(Distpicker.DEFAULTS, options);
 
-   };
 
-   // Save the other distpicker
 
-   Distpicker.other = $.fn.distpicker;
 
-   // Register as jQuery plugin
 
-   $.fn.distpicker = function (option) {
 
-     var args = [].slice.call(arguments, 1);
 
-     return this.each(function () {
 
-       var $this = $(this);
 
-       var data = $this.data(NAMESPACE);
 
-       var options;
 
-       var fn;
 
-       if (!data) {
 
-         if (/destroy/.test(option)) {
 
-           return;
 
-         }
 
-         options = $.extend({}, $this.data(), $.isPlainObject(option) && option);
 
-         $this.data(NAMESPACE, (data = new Distpicker(this, options)));
 
-       }
 
-       if (typeof option === 'string' && $.isFunction(fn = data[option])) {
 
-         fn.apply(data, args);
 
-       }
 
-     });
 
-   };
 
-   $.fn.distpicker.Constructor = Distpicker;
 
-   $.fn.distpicker.setDefaults = Distpicker.setDefaults;
 
-   // No conflict
 
-   $.fn.distpicker.noConflict = function () {
 
-     $.fn.distpicker = Distpicker.other;
 
-     return this;
 
-   };
 
-   $(function () {
 
-     $('[data-toggle="distpicker"]').distpicker();
 
-   });
 
- });
 
 
  |