Select选择器

基础用法

v-model的值为当前被选中的el-option的value属性值

<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
  }
</script>

效果图如下所示:

有禁用选项

在el-option中,设定disabled值为true,即可禁用选项。

<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value"
      :disabled="item.disabled">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶',
          disabled: true
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
  }
</script>

效果图如下所示:

禁用状态

选择器不可用状态

为el-select设置disabled属性,则整个选择器不可用。

<template>
  <el-select v-model="value" disabled placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>
  
<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
  }
</script>

效果图如下所示:

可清空单选

包含清空按钮,可将选择器清空为初始状态。为el-select设置clearable属性,则可将选择器清空。需要注意的是,clearable属性仅适用于单选。

<template>
  <el-select v-model="value" clearable placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
  }
</script>

基础多选

为el-select设置multiple属性即可启用多选,此时el-model的值为当前选中值所组成的数组。默认情况下选中值会以Tag的形式展现,你也可以设置 collapse-tags属性将它们合并为一段文字。

<template>
  <el-select v-model="value1" multiple placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>

  <el-select
    v-model="value2"
    multiple
    collapse-tags
    style="margin-left: 20px;"
    placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value1: [],
        value2: []
      }
    }
  }
</script>

效果图如下所示:

自定义模板

将自定义的HTML模板插入el-option的slot中即可。

<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in cities"
      :key="item.value"
      :label="item.label"
      :value="item.value">
      <span style="float: left">{{ item.label }}</span>
      <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        cities: [{
          value: 'Beijing',
          label: '北京'
        }, {
          value: 'Shanghai',
          label: '上海'
        }, {
          value: 'Nanjing',
          label: '南京'
        }, {
          value: 'Chengdu',
          label: '成都'
        }, {
          value: 'Shenzhen',
          label: '深圳'
        }, {
          value: 'Guangzhou',
          label: '广州'
        }],
        value: ''
      }
    }
  }
</script>

效果图如下所示:

分组

使用el-option-group对备选项进行分组,它的label属性为分组名

<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option-group
      v-for="group in options"
      :key="group.label"
      :label="group.label">
      <el-option
        v-for="item in group.options"
        :key="item.value"
        :label="item.label"
        :value="item.value">
      </el-option>
    </el-option-group>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          label: '热门城市',
          options: [{
            value: 'Shanghai',
            label: '上海'
          }, {
            value: 'Beijing',
            label: '北京'
          }]
        }, {
          label: '城市名',
          options: [{
            value: 'Chengdu',
            label: '成都'
          }, {
            value: 'Shenzhen',
            label: '深圳'
          }, {
            value: 'Guangzhou',
            label: '广州'
          }, {
            value: 'Dalian',
            label: '大连'
          }]
        }],
        value: ''
      }
    }
  }
</script>

效果图如下所示:

创建条目

使用allow-create属性即可通过在输入框中输入文字来创建新的条目。注意,此时 filterable必须为真。本例还使用了default-first-option属性,在该属性打开的情况下,按下回车就可以选中当前选项表中的第一个选项,无需使用鼠标或键盘方向键进行定位。

<template>
  <el-select
    v-model="value"
    multiple
    filterable
    allow-create
    default-first-option
    placeholder="请选择文章标签">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: 'HTML',
          label: 'HTML'
        }, {
          value: 'CSS',
          label: 'CSS'
        }, {
          value: 'JavaScript',
          label: 'JavaScript'
        }],
        value: []
      }
    }
  }
</script>

效果图如下所示:

Select Attributes

参数说明类型可选值默认值
value/v-model绑定值boolean/string/nubmer————
multiple是否多选boolean——false
disabled是否禁用boolean——false
 value-key作为value唯一标识的键名,绑定值为对象类型是必填string——value
size输入框尺寸string medium/small/mini——
clearable是否可以清空选项boolean——false
 collapse-tags多选时是否将选中值按文字的形式展示boolean——false
multiple-limit多选时用户最多可以选择的条目数,为0则不限制number——0
nameselect input的name属性string————
 autocompleteselect input的autocomplete属性string——

off

auto-complete下个版本弃用string——off
placeholder占位符string——请选择
filterable是否可搜索boolean——off
 allow-create是否允许用户创建新条目,需要配合 filterable使用boolean——false
filter-method自定义搜素方法function————
remote是否为远程搜索boolean——false
remote-method远程搜索方法function————
loading是否正在从远程获取数据boolean——false
loading-text远程加载是显示的文字string——加载中
no-match-text搜索条件无法匹配时显示的文字,也可以使用slot=“empty”设置string——无匹配数据
no-data-text选项为空时显示的文字,也可以使用 slot=“empty”string——无数据
popper-classselect下拉框的类名string————
reserve-keyword多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词boolean——false
default-first-option
在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用
boolean——false
popper-append-to-body是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 falseboolean——true
automatic-dropdown对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单boolean——false

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Select Events

事件名称说明回调函数
change选中值发生变化时触发目前的选中值
visible-change下拉框出现/隐藏式触发出现则为true,隐藏则为false
remove-tag多选模式下移除tag时触发移除的tag值
clear可清空的单选模式下用户点击清空按钮是触发——
blur当input失去焦点是触发(event:Event)
focus当input获取焦点时触发(event:Event)

 

 

 

 

 

 

 

 

 

Select Slots

name说明
——Option组件列表
prefixSelect组件头部内容
empty无选项时的列表

 

 

 

 

 

Option Group Attributes

参数说明类型可选值默认值
label分组的组名string————
disabled是否将该分组下所有选项为禁用boolean——false

 

 

 

 

Option Attributes

参数说明类型可选值默认值
value选项的值string/number/object————
label选项的标签string/number————
disabled是否禁用该选项boolean—— false

 

 

 

 

 

Methods

方法名说明参数
 focus使input获取焦点——
blur使input失去焦点,并隐藏下拉框——

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值