fsLayui2树形复选框选中事件

概述

看官方文档和引入的fstree.js,fsLayui2树形菜单监听事件貌似只提供了点击事件,未提供复选框选中监听事件。于是本身引入的还是ztree插件,于是自己在fsTree.js加了个复选框选中事件onCheck。

步骤一

自定义一个属性为setFormId,赋值给form表单某个属性,为选中的id值。
在这里插入图片描述

步骤二

在fsTree.js文件中为setFormId属性赋值。

在这里插入图片描述

步骤三

在fsTree.js文件中FsTree.prototype.showTree方法里增加onCheck事件。
源代码:

if("checkbox" == checkType || "radio" == checkType){
			var check = {};
			check["enable"] = true;
			check["chkStyle"] = checkType;
			setting["check"] = check;
			
}

修改后:

if("checkbox" == checkType || "radio" == checkType){
			var check = {};
			check["enable"] = true;
			check["chkStyle"] = checkType;
			setting["check"] = check;
			var setFormId = _this.config.setFormId;
			var isRoot = _this.config.isRoot;
			var treeIdKey = _this.config.treeIdKey;
			setting["callback"]["onCheck"]=function(){
				var zTree = $.fn.zTree.getZTreeObj(treeId);
				var nodes = zTree.getCheckedNodes();
        		if(nodes != null && nodes.length > isRoot) {
        			var idStr = "";
        			for(var i = isRoot; i < nodes.length; i++) {
        				if(i == isRoot) {
        					idStr += nodes[i][treeIdKey];
        				} else {
        					idStr += "," + nodes[i][treeIdKey];
        				}
        			}
        			$("#"+setFormId).val(idStr);
        		} else {
        			$("#"+setFormId).val("");
        		}
			}
		}

步骤四

由于编辑时候根目录为自定义的,数据库没有该节点,所以会出现以下这种情况。子节点选中,父节点没有选中。
在这里插入图片描述
增加判断根节点是否选中
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值