el-select增加删除并禁止重复选择

本文介绍了如何在Vue.js应用中,使用Element UI的el-select组件来禁止用户重复选择选项,并添加功能允许用户删除已选选项。通过对el-select的配置和自定义事件处理,实现了这一增强的选中项管理功能。
摘要由CSDN通过智能技术生成
<template>
  <div class="select">
    <el-form :model="validateForm" :rules="validateRules" :show-message="false" ref="validateForm" label-width="100px"
             hide-required-asterisk>
      <el-form-item prop="email" label="邮箱">
        <el-input v-model="validateForm.email"></el-input>
      </el-form-item>
      <el-form-item :prop="'arr.' + i" :rules="validateRules.select" :key="i" v-for="(item, i) in validateForm.arr"
                    label="选择">
        <el-select @visible-change="getOption($event, i)" v-model="validateForm.arr[i]" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label
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、付费专栏及课程。

余额充值