浅谈EasyUi ComBotree树修改 父节点选择的问题

本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 。 毕竟不同项目背景 取舍不同。

我在做网元树选择的时候 发现当选取父节点后,子节点都会被选择 返回 。但是如果我们选中父节点后没有必要选择子节点。 故对源脚本作适当修改

下拉框树修改 父节点选中后只显示父节点 取消返回子节点

修改方法 找到树的选择函数 进行遍历判断

查找关键字 combotree multiple

大约行数 10564

<div class="jb51code">
<pre class="brush:js;">
function _7d5(_7d6) {
var opts=$.data(_7d6,"combotree").options;
var tree=$.data(_7d6,"combotree").tree;
var vv=[],ss=[];
if(opts.multiple){
var _7d7 = tree.tree("getChecked");//获得树的选择
for (var i = 0; i < _7d7.length; i++) {
// if (tree.tree('isLeaf',_7d7[i].target)) { //如果当前节点是叶子节点
var pnode = tree.tree('getParent',_7d7[i].target); //获取当前节点的父节点
if (pnode) {
var nopnode = true;
for (var j = 0; j < i; j++) {//endfor遍历循环是否存在父节点
if (_7d7[j].id == pnode.id) { nopnode = false; }
}
if (nopnode == true) {//如果不存在父节点
vv.push(_7d7[i].id);
ss.push(_7d7[i].text);
}
}
// } //end是叶子节点
else {
vv.push(_7d7[i].id);
ss.push(_7d7[i].text);
}//是根节点
}//end for

//该处为源代码
//for(var i=0;i<_7d7.length;i++){
//vv.push(_7d7[i].id);
//ss.push(_7d7[i].text);
//}//end for

//end if
} else {
var node=tree.tree("getSelected");
if(node){
vv.push(node.id);
ss.push(node.text);
}
}
$(_7d6).combo("setValues",vv).combo("setText",ss.join(opts.separator));
};

以上这篇浅谈EasyUi ComBotree树修改 父节点选择的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...