主题预览

色调:

如果您使用的浏览器过时,不支持OKLCH颜色。颜色设置会不生效。

轻盈的鱼
幻想变成轻盈的鱼, 畅游在自由的海洋

文档目录

jQuery 省市三级联动

1980 字

页面打开默认获取省信息,选择省以后,再获取市信息,点击市以后,再获取地区信息

 var regions = {
        'state': $('#state'),
        'city': $('#city'),
        'district': $('#district'),
        'init' : function(){
            var _this = this;
            _this.getState(_this.state,1);
            _this.state.change(function(){
                var id = ($(this).val());
                _this.city.find('option:gt(0)').remove();
                _this.district.find('option:gt(0)').remove();
                _this.getCity(_this.city,id);
            });

            _this.city.change(function(){
                var id = ($(this).val());
                _this.district.find('option:gt(0)').remove();
                _this.getDistrict(_this.district,id);
            });
        },
        'getState':function(elem,id,callback){
            this.getJson(elem,id,callback);
        },
        'getCity':function(elem,id,callback){
            this.getJson(elem,id,callback);
        },
        'getDistrict':function(elem,id,callback){
            this.getJson(elem,id,callback);
        },
        'render':function(elem,data,callback){
            if(data.regions && !$.isEmptyObject(data.regions)){
                elem.find('option:gt(0)').remove();
                $.each(data.regions,function(name,value){
                    elem.append('<option value ="'+ value.id +'">'+ value.name + '</option>')
                });
                if(callback && (typeof callback) == 'function'){
                    callback();
                }
            }
        },
        'getJson':function(elem,id,callback){
            var _this = this;
            $.ajax({
                type: "post",
                url: system.url("address/get-regions"),
                data: {
                    "parent_id":id
                },
                dataType: "json",
                cache: false,
                success: function(resp){
                    if(resp.status){
                        _this.render(elem,resp.data,callback);
                    }
                },
                error:function(){
                }
            });
        }
    };

callback的作用

当获取信息时,需要渲染对应的省市信息 通过添加回调,可以依次获取省、市、地区信息

regions.getState(regions.state,1,function(){
    $('#state').val(_this.attr('data-state'));
    regions.getCity(regions.city,_this.attr('data-state'),function(){
        $('#city').val(_this.attr('data-city'));
        regions.getDistrict(regions.district,_this.attr('data-city'),function(){
            $('#district').val(_this.attr('data-district'));
         });
    });
});