el-select 不能重复选择

文章介绍了如何在Vue项目中使用ElementUI的el-select组件,防止用户重复选择,并在删除选项后允许重新选择。通过v-model绑定和自定义方法控制选项的disable状态。
摘要由CSDN通过智能技术生成

el-select 不能重复选择,注意:删除后可以再次重新被选择
在这里插入图片描述

				<el-form-item>
                    <el-select v-model="attribute.attributeSelect" @change="changeSelect()" placeholder="请选择属性分组" clearable>
	                    <el-option
	                        v-for="item in attributeList"
	                        :key="item.value"
	                        :label="item.label"
	                        :value="item.value"
	                        :disabled="item.disabled"
	                    ></el-option>
                  </el-select>
                </el-form-item>
                <el-button class="el-button" type="text" @click="delAttribute({attribute: attribute, index: attIndex})">
                  <svg-icon
                      class="svg-icon"
                      name="shanchu"
                      :width="16"
                      :height="16"
                      type="primary"
                  />
                </el-button>
// 数据定义
data() {
    return {
      attributeList: [
        {
          label: 'qwe',
          value: 'qwe'
        },{
          label: 'eee',
          value: 'eee'
        },{
          label: 'ddd',
          value: 'D'
        },
      ],
      // 属性分组
      attributeGroupForm: [
        //   单一
        {
          attributeSelect: '',
        }
      ],
    }
  },
	changeSelect() {
      this.setDisable()
    },
    // 选项处理
    setDisable(){
      this.attributeList.forEach(item=> {
        let isdisable = this.attributeGroupForm.findIndex((val) => val.attributeSelect ==item.value)
        if(isdisable!=-1){
          item.disabled = true
        }else {
          item.disabled = false
        }
      })
    },
    // 添加 分组
	attributeGroupIndex() {
        this.attributeGroupForm.push({
          attributeSelect: '',
        })
    },
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-select 组件默认情况下不支持一个选项可以重复选择多次。如果需要实现一个选项可以重复选择多次,可以使用 el-select 的远程搜索功能结合 el-option 的 label 和 value 属性来实现。 具体步骤如下: 1. 将 el-select 的 filterable 属性设置为 true,启用搜索功能。 2. 在 el-select 上监听 input 事件,当用户输入时,调用远程搜索接口获取选项列表。 3. 在 el-option 上设置 label 和 value 属性,其中 label 属性可以用来显示选项名称,value 属性可以用来识别选项。 4. 在 el-select 上使用 v-model 指令绑定选择选项,这个值将是一个数组,用来保存选择选项的 value 值。 下面是一个基本的示例代码: ```html <template> <el-select v-model="selectedOptions" filterable @input="handleInput"> <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value" ></el-option> </el-select> </template> <script> export default { data() { return { selectedOptions: [], // 用来保存选择选项值的数组 options: [] // 用来保存所有的选项的数组 } }, methods: { handleInput(value) { // 调用远程搜索接口获取选项列表,这里直接使用 mock 数据 this.options = [ { label: 'Option 1', value: 'option1' }, { label: 'Option 2', value: 'option2' }, { label: 'Option 3', value: 'option3' } ] } } } </script> ``` 在上面的代码中,我们使用了 mock 数据来模拟远程搜索接口的返回结果,实际使用时需要根据实际情况来修改代码。通过设置 label 和 value 属性,我们可以将选项的显示名称和值分别与 el-option 组件关联起来。在 el-select 上使用 v-model 指令绑定 selectedOptions 数组,用来保存用户选择选项的值。由于 el-select 组件的 filterable 属性被设置为 true,用户可以通过输入来搜索选项。当用户输入时,我们通过监听 input 事件来调用 handleInput 方法,获取选项列表并更新 options 数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值