el-cascader组件选中节点后如何自动隐藏

问题

在form表单中使用cascader,某些需求下会将整个表单disabled,如果此时点击了cascader,它会disabled,但弹出框不会消失。

查看文档

给cascader设置上ref

调用

// 清空选中的节点

this.$refs.cascader.$refs.panel.clearCheckedNodes();

// 设置为空可以让节点不高亮显示

this.$refs.cascader.$refs.panel.activePath = [];

上面的结果若不能没有解决问题。可能clearCheckedNodes有bug,去看看elementui原码。

找到原码并应用成功了:

let that = this;

if (that.$refs.cascader){

that.$refs.cascader.$refs.panel.clearCheckedNodes()

that.$refs.cascader.$refs.panel.activePath = []

that.$refs.cascader.$refs.panel.scrollIntoView()

that.$refs.cascader.$refs.input.$refs.input.setAttribute('aria-expanded', false)

that.$refs.cascader.$emit('visible-change', false)

that.$refs.cascader.$refs.panel.$emit('visible-change', false)

that.$refs.cascader.$refs.panel.$emit('close')

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容