代码如下:

< 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. IntelliJ IDEA 2016

    IntelliJ IDEA 2016 注册码 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1Ii ...

  2. ajax中使用post传值数组array

    如果我们在data中想放入array的参数,根据在网上搜索的结果有如下方法,但是没有一个成功的……我还是贴出来,别人成功了,也许是我哪里不对,日后也许还有机会研究..在文章的最后贴出了转化为json的 ...

  3. 实现标记datagridview标题并导出Excel的功能

    最近在学习winform,国庆前被布置了一个小任务,好不容易大致做出来了,决定记录下来,以此加深印象. 先说下需求:这是一个导入话单标记后并导出的功能 1. 选择excel文件 2. 定义字段   日 ...

  4. 通过JS检测360浏览器

    如何通过JS检测360浏览器? 尝试了一大堆方法,网上大多数办法都是通过navigator.userAgent来判断,这可能在几年前是行得通的,现在360userAgent输出来跟谷歌除了版本号其余一 ...

  5. SharpDevelop的亮点—优化提示

    用惯了Visual Studio,像被惯坏了孩子,很难适应别的IDE.   上个月Win7系统崩溃了,重装后,自然VS也没了.这次下定决心,绝对不在自己电脑上用VS了,于是重新捡起SharpDevel ...

  6. batchInsert xml 配置 ibatis

    <insert id="tops_visa_openapi_jvisaproduct.batchinsert" parameterClass="java.util. ...

  7. Angular js 之动态传数据到下一个页面和动态通过ng-click进入不同的页面

    +关于Angular js中一些千篇一律的后台获取数据 首先在services.js里面把服务写好 然后在controller里面把数据给打印出来 (首先需要把数据注入) +关于Angular js中 ...

  8. PHPCMS后台登陆路径修改方法(V9版)

    转自:http://hi.baidu.com/geek_cheng/item/b903ebe7b4ac3af9e0a5d4aa?qq-pf-to=pcqq.c2c 最新发布的PHPCMS V9由于采用 ...

  9. (BFS)aoj0558-Cheese

    题目地址 根据题意,必须按从1吃到n的顺序.建立vi数组记录去没去过某一点,从起点向四周搜索,合法且未去过就入队列.每当找到符合此时应吃的位置,就将这个位置改为'.'并刷新vi数组,清空队列(因为必须 ...

  10. Android中Activity的启动模式

    简介 Android中的活动启动方式分为4种:standard, singleTop, singleTask, singleInstance.可以在AndroidManifest.xml中通过给< ...