Jstree子节点与父节点的级联选择修改

  • Post author:
  • Post category:其他


文章来源于用Jstree做权限组设置时的BUG

主要问题:


1. 选定父节点时其子节点默认全选?



2. 跨过父节点(展开所有节点)选定子节点时其其父节点的父节点的父节点的…父节点不自己动选定?


但是作为一个成熟的权限组,我们要的是它:


1. 选定父节点时只选定当前节点,不选定其子节点

2. 跨过父节点(展开所有节点)选定子节点时,自动选定其父节点的父节点的父节点的…父节点


SO 文章由来

解决办法


Jstree

初始化时设置:

"checkbox": {
            "keep_selected_style": false,//是否默认选中
            "three_state": false,//父子级别级联选择
            "tie_selection": true,
            "cascade":'undetermined'
        },

此时,当你跨过父节点选定子节点时,其其父节点的父节点的父节点的…父节点会成为一个

半选的状态

,也就是一墨点(占满全格子那种)而不是

选定状态

的对号(√)

最后在向服务器提交数据的时候我们就要

获取所有的选定状态的节点及半选状态的节点


这样,选定子节点自动半选的父节点也会算在我们的权限组中

var nodes = [];//想要的权限节点id数组
    $.each($("#container").jstree("get_checked"), function (index, item) {//获取所有选定节点
        nodes.push(item);
    });
    $.each($("#container").jstree("get_undetermined"),function (index, item) {//获取所有半选节点
        nodes.push(item);
    });



版权声明:本文为weixin_39752671原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。