js省市联动

(function ($) {
        $.fn.extend({
            showselect: function (id, data) {
                if ($.isArray(id)) return this.getselect(0, id);
                if (!$.isArray(data)) {
                    alert("select 数据获取失败!");
                    return false;
                }
                if (id == 0) return this.getselect(data);
                var arr = new Array();
                arr.length = 0;
                var pid = id;
                var doi = -1;
                while (pid != doi) {
                    doi = pid;
                    for (var i = 0; i < data.length; i++) {
                        if (data[i][0] == pid) {
                            pid = data[i][2];
                            arr.push([pid, data[i][0]]);
                        }
                    }
                }
                for (var i = 0; i < arr.length; i++) {
                    this.getselect(arr[arr.length - 1 - i][0], data, arr[arr.length - 1 - i][1]);
                    if (i == arr.length - 1) this.getselect(arr[arr.length - 1 - i][1], data);
                }
            },
            getselect: function (pid, data, selectedid) {
              
                if (typeof pid == "undefined") pid = 0;
                if (typeof selectedid == "undefined") selectedid = 0;
                if ($.isArray(pid)) return this.getselect(0, pid);
                var arr = new Array();
                arr.length = 0;
                if(data){
                    for (var i = 0; i < data.length; i++){
                        if (data[i][2] == pid)
                            arr.push("<option value=\"" + data[i][0] + "\"" + (data[i][0] == selectedid ? " selected=\"selected\"" : "") + ">" + data[i][1] + "</option>");
                    }
                    $(this).append(arr.length > 0 ? this.toselect(arr.toString()) : "");
                    this.bindchange(this, data);
                }
            },
            toselect: function (strOption) {
                return "<select id=\"" + $(this).attr("id") + "select" + ($(this).find("select").length + 1) + "\"><option value=\"0\">请选择</option>" + strOption + "</select>";
            },
            bindchange: function (t, d) {
                $(this).find("select").unbind("change").change(function () {
                    $(t).find("select:gt(" + $(this).index() + ")").remove();
                    if ($(this).val() == 0) return false;
                    var val            = $(this).val();
                      
                          
                    $.get('ajax.php?mod=getTaskSub&code=getsubcate',{'t_id':$(this).val()},function(data1){
                        if(data1){
                            var resData1    = eval("("+data1+")");
                            var sel = t.getselect(val, resData1);
                            $(this).after(sel);
                            t.bindchange(t, d);
                        }

                    },'text');

                    $('input[name="c_id"]').val($(t).find("select:last").val());
                });
            }
        });
    })(jQuery);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值