当前位置:   article > 正文

element select下拉框回显option中没有的值_el-select 如何展示不在列表中的数据

el-select 如何展示不在列表中的数据

记录下今天碰到的问题,问题是这样的,有个select下拉框的数据源option依赖于一组数据,然后这组数据可以进行禁用/启用操作,启用之后才能在select框中进行选择。好,问题来了,用户先在下拉框中选了一个值A({value:20,label: A}),然后又跑去禁用这个数据A,搞得我option中丢掉了这组数据,但是在编辑的时候后端给我返回了之前A对应的值1,然后由于option中没有这个映射关系,我的下拉框就变成了一个孤零零的数字回显在上面,如下图

需求来了,需求方说他要看到那个A,用户要是不修改的话,就保留A,用户要是更改的话,就不能选A

解决方案如下,直接上代码:

  1. <el-select v-model="Id" placeholder="请选择" clearable filterable style="width: 240px">
  2. <el-option
  3. v-for="dict in list"
  4. :key="dict.id"
  5. :label="dict.name"
  6. :value="dict.id"
  7. />
  8. <el-option v-if="!list.some(list=> list.id === Id)"
  9. :label="name"
  10. v-model="Id"/>
  11. </el-select>
  12. list: [],

list为数据源,从数据库查询出来,直接赋值。

原理大概是这样,给select再设置一个option,触发条件:当绑定的Id在遍历整个option之后都没有找到时;label中绑定的值就是你想显示的值,我这里绑定的是name(从后端查出来的上文中id为20对应的label的值),我们来看一下效果:如下图:

如图,已经可以显示出来了(我这里id20对应的就是‘A’),此时发现A也出现在了下拉框中并且默认选中;如果进行更改操作,例如选了小熊,则A会从下拉框中消失,因为A本就不是option(第一个)中的数据,只有当id跟option中的数据都对不上时,才会显示第二个option,效果如下图:

至此,问题解决,实现select回显option中没有的值。记录一下自己的遇到的问题,如有不对,欢迎指正!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/577796
推荐阅读
相关标签
  

闽ICP备14008679号