Keep in mind, if you use checkbox.tie_selection as false , the selection and validation are the same thing.
That way you can just call .disable_node() on the nodes you want to disable.
EDIT : use the last code from the repo (note - not 3.1.1, but the last code): https://github.com/vakata/jstree/archive/master.zip
Now you can indicate the status of checkbox_disabled :
<div id="jstree"> <ul> <li data-jstree='{"checked":true}'>checked</li> <li data-jstree='{"checkbox_disabled":true}'>checked</li> </ul> </div>
In JSON too, of course:
{ "id" : "Test node", "state" : { "checkbox_disabled" : true } }
You can also change the disabled state of the checkbox at run time with enable_checkbox(node) and disable_checkbox(node) .
source share