使用带有复选框插件的jsTree(3.1.0 +)是否可以不允许所有复选框检查 - 禁用其中一些复选框?
我在这里找到了jsTree旧版本的解决方案jstree disable checkbox,但它在jsTree 3.1.0+版本上没有用。
隐藏复选框jsTree Hide Checkbox的解决方案正常,但如果我点击该文件夹,则会检查隐藏的复选框。
感谢。
答案 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