jsTree禁用一些复选框

时间:2015-05-14 12:28:03

标签: jstree

使用带有复选框插件的jsTree(3.1.0 +)是否可以不允许所有复选框检查 - 禁用其中一些复选框?

我在这里找到了jsTree旧版本的解决方案jstree disable checkbox,但它在jsTree 3.1.0+版本上没有用。

隐藏复选框jsTree Hide Checkbox的解决方案正常,但如果我点击该文件夹,则会检查隐藏的复选框。

感谢。

2 个答案:

答案 0 :(得分:12)

请注意,除非您使用checkbox.tie_selection作为false,否则选择和检查是相同的。

因此,您只需在要禁用的节点上调用.disable_node()即可。

编辑:使用repo中的最新代码(注意 - 不是3.1.1,而是最新的代码): https://github.com/vakata/jstree/archive/master.zip

您现在可以指定checkbox_disabled州:

<div id="jstree">
    <ul>
        <li data-jstree='{"checked":true}'>checked</li>
        <li data-jstree='{"checkbox_disabled":true}'>checked</li>
    </ul>
</div>

当然也在JSON中:

{ "id" : "Test node", "state" : { "checkbox_disabled" : true } }

您还可以使用enable_checkbox(node)disable_checkbox(node)在运行时更改复选框的已禁用状态。

答案 1 :(得分:4)

要完全隐藏特定节点的复选框,请添加以下JS代码

.no_checkbox > i.jstree-checkbox {
	display: none;
}

并在CSS中添加以下样式

 this.formname.valueChanges.subscribe(form => {
            sessionStorage.setItem('form', JSON.stringify(form));
          });

它将完全隐藏所提供节点ID的复选框,这对我来说就像一个魅力。 Thanks to this link