起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1947|回复: 1

[处理中3] 省市联动

[复制链接]

14

主题

34

帖子

122

积分

初级会员

Rank: 2

积分
122
QQ
发表于 2018-1-23 22:41:42 | 显示全部楼层 |阅读模式
demo中distpicker感觉不好用,我有一个纯js的,哪位能帮忙指点怎么引用?
area.js代码如下:
var s=["s_province","s_city","s_county"];//三个select的name
var opt0 = ["省份","地级市","市、县级市"];//初始值
function _init_area(){  //初始化函数
        for(i=0;i<s.length-1;i++){
          document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
        }
        change(0);
}

function Dsy(){
        this.Items = {};
}
Dsy.prototype.add = function(id,iArray){
        this.Items[id] = iArray;
}
Dsy.prototype.Exists = function(id){
        if(typeof(this.Items[id]) == "undefined") return false;
        return true;
}

function change(v){
        var str="0";
        for(i=0;i<v;i++){
                str+=("_"+(document.getElementById(s[i]).selectedIndex-1));
        };
        var ss=document.getElementById(s[v]);
        with(ss){
                length = 0;
                options[0]=new Option(opt0[v],opt0[v]);
                if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v){
                        if(dsy.Exists(str)){
                                ar = dsy.Items[str];
                                for(i=0;i<ar.length;i++){
                                        options[length]=new Option(ar[i],ar[i]);
                                }//end for
                                if(v){ options[1].selected = true; }
                        }
                }//end if v
                if(++v<s.length){change(v);}
        }//End with
}

var dsy = new Dsy();

dsy.add("0",["北京市","天津市","上海市","重庆市","河北省","山西省","内蒙古","辽宁省","吉林省","黑龙江省","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西","海南省","四川省","贵州省","云南省","西藏","陕西省","甘肃省","青海省","宁夏","新疆","香港","澳门","台湾省"]);
dsy.add("0_0_0",["东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","怀柔区","平谷区","密云县","延庆县","延庆镇"]);
dsy.add("0_0",["北京市"]);
dsy.add("0_1_0",["和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区","东丽区","西青区","津南区","北辰区","武清区","宝坻区","蓟县","宁河县","芦台镇","静海县","静海镇"]);
dsy.add("0_1",["天津市"]);………………。
发表于 2018-2-5 14:21:48 | 显示全部楼层
如果想自己做!可以放3个select组件!
省  市 县 的数据存储在data组件中即可!
二级 和 3级 的select 可以通过绑定自定义函数!!根据上级的选择值,得到当前需要下拉显示的值!
参考第三个案例
http://doc.wex5.com/comps-select/#008
类似 list 的filter:
http://docs.wex5.com/wex5-ui-question-list-2018/
根据上一个选择的值作为条件 ,过滤当前可选值即可!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 00:34 , Processed in 0.059894 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表