xm-select版本:1.2.4 Gitee

现在xm-select的on回调中返回的arr、change数据都是叶子节点的数据,想要获取选中的非叶子节点的数据,就只有通过getValue()获取选中的数据后,遍历获取的数据,根据optgroup属性获取到选中的非叶子节点,这种方式能在最终submit前获取。

获取选中的数据:

可以看到非叶子节点是有一个optgroup属性的,这个属性的官方解释如下:

可以理解为这个属性为true的节点就是一个分组节点,我的理解是tree模式下,分组节点就是tree的非叶子节点,所以通过这种方式获取选中的非叶子节点数据就有点曲线救国的意思了

 核心代码

form.on('submit(auditForm)', function (data) {
    console.log(getNonLeafNodeData(resourceSelect.getValue()));
});

// 获取非叶子节点数据
function getNonLeafNodeData(selectArr){
    var rArr = [];
    $.each(selectArr,function(index,value){
        if(true == value.optgroup){
            rArr.push(value);
        }
        if(value.children.length > 0){
            rArr = rArr.concat(getNonLeafNodeData(value.children));
        }
    });
    return rArr;
}

测试结果

若此方法有误,请随时指正!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐