代码如下:

< script type = "text/javascript" >
    var flag = "<%=request.getParameter("
flag ")%>";
if (flag != "true") {
    flag = false;
} else {
    flag = true;
}
var reginTree = {
    setting: {
        view: {
            fontCss: {
                color: "#000"
            }
        },
        check: {
            enable: true,
            chkboxType: {
                "Y": "p",
                "N": "p"
            }, //加上ps  当点击父节点时子节点全部选中
            children: "children"
        },
        data: {
            key: {
                checked: "checked"
            },
            simpleData: {
                enable: true,
                idKey: "id",
                pIdKey: "pId",
                rootPId: 0
            }
        }
    },
    //获取ztree对象
    getZtreeObj: function(id) {
        var zTree;
        if ($.fn.zTree.getZTreeObj(id) != null && $.fn.zTree.getZTreeObj(id) != undefined) {
            zTree = $.fn.zTree.getZTreeObj(id);
        }
        return zTree;
    },
    //初始化ztree
    loadZtree: function(json, id, treeNode, callback) {
        var setter = $.extend({}, reginTree.setting, json);
        $.fn.zTree.init($('#' + id), setter, treeNode);
        var zTree = reginTree.getZtreeObj(id);
        if (callback) callback();
    },
    //加载ztree
    loadArea: function(bal, regionIdList) {
        var regionJson = {
            "level": "2"
        };
        var treeNode = [];
        _public_.getJson(regionJson, "frontServer?busiCode=02060203").done(function(data) {
            if (data.returnCode == "Y") {
                for (var i = 0; i < data.regionList.length; i++) {
                    var id = data.regionList[i].rid;
                    var pId = data.regionList[i].pid;
                    var name = data.regionList[i].regionName;
                    var json = {
                        "id": id,
                        "name": name,
                        "pId": pId
                    };
                    if (bal) {
                        if (reginTree.setbal(regionIdList, json.id)) {
                            json.checked = true;
                        }
                    }
                    treeNode.push(json);
                }
                console.dir(treeNode);
            } else {
                console.log("加载数据失败");
            }
            reginTree.loadZtree({
                callback: {
                    onCheck: reginTree.zTreeOnCheck
                }
            }, 'tree', treeNode, function() {
                var treeObj = reginTree.getZtreeObj('tree');
                var nodes = treeObj.getCheckedNodes(true);
                $.each(nodes, function(i, value) {
                    treeObj.expandNode(value, true, false, true);
                });
            });
        });

$('#tree').css({
            'width': '400px',
            'height': '450px',
            'overflow': 'auto'
        });
        $('#tree').parent().css({
            'width': $('#tree').get(0).offsetWidth + 'px',
            'height': $('#tree').get(0).offsetHeight + 'px'
        });

},
    //ztree节点选中   当选中节点时树形 结构展开
    zTreeOnCheck: function(event, treeId, treeNode) {
        var treeObj = reginTree.getZtreeObj('tree');

if (treeNode.checked == true) {
            //单选控制
            treeObj.checkAllNodes(false);
            treeObj.checkNode(treeNode, true, true, false);

var oner = treeObj.getCheckedNodes(true);
            treeObj.expandNode(treeNode, true, false, true);
        }
        /* var nodes = treeObj.getCheckedNodes(true);
        console.dir(nodes); */

/* var treeObj = reginTree.getZtreeObj('tree'),
            nodes = treeObj.getCheckedNodes(true),
            v = "";
        for (var i = 0; i < nodes.length; i++) {
            v += nodes[i].name + ",";
            alert(nodes[i].id + "," + v); //获取选中节点的值
        } */
    },
    getCheckNode: function(id, bal, param) {
        var zTree = reginTree.getZtreeObj(id);
        var nodes = zTree.getCheckedNodes(bal);
        var arr = [];
        var i = 0;
        var len = nodes.length;
        console.dir(nodes);
        for (i = 0; i < len; i++) {
            arr.push(nodes[i][param]);
        }
        return arr.join();
    },
    setbal: function(regionIdList, id) {
        var arr = regionIdList.split(',');
        var i = 0;
        var len = arr.length;
        for (i = 0; i < len; i++) {
            if (arr[i] == id) {
                return true;
                break;
            }
        }
    }
};

$(function() {
    $(".submit").on("click", function() {
        var regionIds = reginTree.getCheckNode("tree", true, "id");
        if (flag == true) {
            var jsonr = {
                "regionIds": regionIds
            };
            _public_.getJson(jsonr, "frontServer?busiCode=SYSRegionGetAllName").done(function(data) {
                window.opener.setRegionIds(data.regionAllName, regionIds);
                window.close();
            });
        } else {
            window.opener.setRegionIds("", regionIds);
            window.close();
        }
    });
});
var regionJson = {};
var regionIdList = window.opener.getRegionIds();
var bal = false;
if (regionIdList != null || regionIdList != "") {
    /* regionJson = {"regionIdList":regionIdList}; */
    bal = true;
}

//console.dir(regionJson);

reginTree.loadArea(bal, regionIdList); < /script>

通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点的更多相关文章

  1. ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用

    1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...

  2. ajax获取后台传递的json数据

      最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...

  3. ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)

    一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx); <input type="text" name=&qu ...

  4. 【转】jQuery.ajax向后台传递数组问题

    $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...

  5. jQuery.ajax向后台传递数组问题

    今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ...

  6. Ajax向前后台传递json和转换

    学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object  ...

  7. 基于layUI调用后台数据实现区域信息级联查询

    基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...

  8. jquery 根据后台传递过来的三维数组动态生成三级菜单

    根据后台传递过来的三维数组动态生成三级菜单 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  9. jquery ajax post 传递数组 ,多checkbox 取值

    jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...

随机推荐

  1. 13 个免费的 PNG 图像的优化和压缩工具

    图像格式有许多种不同类型,在互联网上最常见的有JPEG.GIF.BMP.TIFF和PNG.每一种图像格式都有它自己的用途,比如GIF是用于动画的,JPEG是用于高清图片的,这种图片在保存或者调整大小后 ...

  2. ES6 标准部分应用

    1.多行字符串 字符串换行时,不再使用\n,而是使用倒引号`..`,例如: alert(`这是一个 多行 字符串`); 2.模版字符串 不再使用"+"来拼接字符串与变量,而是使用倒 ...

  3. django模板里循环变量<table>里想要两个一行如何控制

    2016-8-3 周三 做项目时遇到的问题: 每个div由循环变量输出: {% for key,value in formextenddetail %} <div id="div_id ...

  4. Linux主机共享目录给Windows主机的方法

    Linux主机共享目录可以通过samba来实现 首先,来看下百科上关于samba的介绍: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Ser ...

  5. IE9,10中console对象的bug

    首先上一段很简单的代码 <!DOCTYPE html> <html> <head> <title></title> <meta htt ...

  6. 告别IT,出售多年自己研发的股票分析系统源码

    不知已过而立,发狠告别IT,回头看看以前自己的多个作品,耗时最多的就是这个股票分析系统了,留在自己的电脑里也体现不出多大价值了,故打算出售源码给需要的人,联系方式QQ:874724605 注明:股票源 ...

  7. DNS bind子域授权安装

    失败经验:rhel 6.x bind 9.8,两台做子域授权,最后失败.原因不详. 改用rhel 5.5, bind 9.3,同样的配置,就成功了.具体记录一下9.3的配置. 安装:采用安装RHEL时 ...

  8. CSS入门

    CSS,层叠样式表,是对web页面显示效果进行控制的一套标准.当页面的内容受多种样式控制,将会按照一定的顺序处理.CSS的作用:(1)将网页的内容结构和格式控制分开.(2)可以精确控制页面的所有元素. ...

  9. [转载]GlassFish 的安装及设置命令

    移步: http://blog.csdn.net/joyous/article/details/8008870

  10. SqlServer索引使用及维护

    在应用系统中,尤其在联机事物处理系统中,对数据查询及处理速度已成为衡量应用系统的标准. 而采用索引来加快数据处理速度也成为广大数据库用户所接受的优化方法. 在良好的数据库设计基础上,能够有效地索引是S ...