# element ui
解决element ui el-select控件多选时option设置为disabled,但可以删除标签,造成无法恢复的bug
问题起因
今天遇到一个问题,需求是,客户选择栏目时,不属于自己的栏目不可修改。但需要显示出来。实现需求使用了element ui的el-select组件。
对于已选栏目的显示,和对栏目的选项取消都比较好。不属于自己的栏目使用了option的disabled
属性。列表中的选项控制正常,对于disabled
属性为true
的元素不可选。
但是在展示已选则的栏目时,option中禁用的选项依然有删除的小叉号。而且还是可以使用的,点击后就被删除了。在列表中的选中状态也取消了。这可闹大了,没法恢复啊。
解决思路
思路很简单,在对选项进行移除时做个判断。如果选项是禁用的,就不操作。
实现中用到了value
属性,用于显示备选项。change
事件用于处理选中的值,remove-tag
事件处理移除选项时的判断
有几个问题需要注意,事件的执行顺序是先出发change
后出发remove-tag
所以要让数据返回变为异步,保证remove-tag
事件完成后在返回数据