tree的api中,只有 tree.setChecked(id, idArr) 方法,没有取消勾选的方法。我的需求是:勾选后做判断,如果不符合条件则取消勾选。
实现方法:使用 tree的oncheck事件,在回调函数中做判断,并确定是否取消勾选:
layTree.render({
elem: '#menuTree',
id: 'roleMenuTree',
showCheckbox:true,
data: tempData,
oncheck: function(obj){
//console.log(obj.data); // 得到当前点击的节点数据
//console.log(obj.checked); // 节点是否被选中
//console.log(obj.elem); // 得到当前节点元素
if (obj.data.text==='菜单管理'){
layer.msg('《菜单管理》不能选!');
obj.elem.find('.layui-form-checked').removeClass('layui-form-checked');
return;
}
}
});
即使用 obj.elem.find('.layui-form-checked').removeClass('layui-form-checked'); 取消勾选。经过验证,在后边使用 tree.getChecked(id) 获取已勾选的内容时,与页面显示的数据一致,无需特殊处理。