当前位置: 首页 > news >正文

el-select动态禁用

在一个el-form表单中有5个el-form-item;

每个el-form-item是一个el-select控件;

这5个el-select控件遵循这样的规则,都是使用同一个list集合,如果第一个el-select选择了list中的某一项,那么这一项就被禁用;其他的el-selet就不能选择这一项了;

如果第二个el-select选择了list中的某一项,那么这一项和第一个el-select选择的项都禁用,

其他的el-select就不能选择这两项了;以此类推

<template><div><el-form :model='form' :rules="rules" ref="form"><el-form-item v-for="(select, index) in selects" :key="index" :label="'Select ' + (index + 1)"prop="selectedOptions"><el-select v-model="form.selectedOptions[index]" @change="handleSelectChange(index)" @clear="handleSelectClear(index)" clearable><el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value" :disabled="isOptionDisabled(option.value)"></el-option></el-select></el-form-item><!-- <el-button type="primary" @click="submitForm">Submit</el-button> --></el-form></div>
</template>

Js代码:

<script>
export default {data() {return {options: [{ label: 'Option 1', value: 1 },{ label: 'Option 2', value: 2 },{ label: 'Option 3', value: 3 },{ label: 'Option 4', value: 4 },{ label: 'Option 5', value: 5 }],form:{selectedOptions: [null, null, null, null, null],disabledOptions: [], // 禁用的选项集合},rules: {selectedOptions: [{ required: true, message: 'Please select at least one option', trigger: 'blur' }]}};},computed: {selects() {return Array.from({ length: 5 });}},methods: {// 下拉框选择事件handleSelectChange(index) {this.form.disabledOptions = [];console.log(this.form.selectedOptions,'+++++++ ')for (let i = 0; i < this.form.selectedOptions.length; i++) {if (this.form.selectedOptions[i] !== null) {this.form.disabledOptions.push(this.form.selectedOptions[i]);}}},// 下拉框清除事件handleSelectClear(index) {const clearedValue = this.form.selectedOptions[index];const indexToRemove = this.form.disabledOptions.indexOf(clearedValue);if (indexToRemove !== -1) {this.form.disabledOptions.splice(indexToRemove, 1);}},//是否禁用isOptionDisabled(value) {return this.form.disabledOptions.includes(value);}}
};
</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python+requests接口自动化测试框架实例详解
  • 关闭Elasticsearch built-in security features are not enabled
  • PHP+MySQL开发组合:智慧同城便民信息小程序源码系统 带完整的安装代码包以及安装部署教程
  • 高阶SQL语句(二)
  • 为什么不能用短链接
  • 爱与愁的心痛
  • 初识kafka-数据存储篇1
  • 搜维尔科技:【应急演练】【工业仿真】救援模拟演练可视化仿真项目实施
  • 网关层针对各微服务动态修改Ribbon路由策略
  • 嵌入式Linux:空洞文件
  • 已注册的商标别忘了续展,新注可能难下证!
  • SQL IN 参数超过2100的解决方案
  • 隐私计算实训营学习三:隐私计算框架的架构和技术要点
  • C语言例4-15:从键盘输入一个整数,求其绝对值并输出。
  • mysql服务
  • 自己简单写的 事件订阅机制
  • 2019年如何成为全栈工程师?
  • JavaScript创建对象的四种方式
  • js 实现textarea输入字数提示
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • PHP变量
  • yii2权限控制rbac之rule详细讲解
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 多线程 start 和 run 方法到底有什么区别?
  • 经典排序算法及其 Java 实现
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 面试总结JavaScript篇
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 王永庆:技术创新改变教育未来
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #Linux(权限管理)
  • #VERDI# 关于如何查看FSM状态机的方法
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (7)svelte 教程: Props(属性)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (day18) leetcode 204.计数质数
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (SERIES12)DM性能优化
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (回溯) LeetCode 131. 分割回文串
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (七)Activiti-modeler中文支持
  • (十)Flink Table API 和 SQL 基本概念
  • (转) Android中ViewStub组件使用
  • (转)Google的Objective-C编码规范
  • (转)程序员技术练级攻略
  • (转)详解PHP处理密码的几种方式
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .htaccess配置常用技巧