Files
element-plus/docs/en-US/component/select.md
sea e12910b477 test: other branch commit pr.new (#19921)
* fix(components): [upload] unable to delete files in removeFile (#19437)

* fix(components): [upload] unable to delete files in removeFile

* fix(components): [upload] remove file when fileList does not use v-model

* Update packages/components/upload/src/use-handlers.ts

Co-authored-by: btea <2356281422@qq.com>

---------

Co-authored-by: leiyu <leiyu@cmss.chinamobile.com>
Co-authored-by: btea <2356281422@qq.com>

* fix(components): [page-header] use `$slots` instead of `useSlots` (#19455)

* fix(components): [page-header] use `$slots` instead of `useSlots`

closed #19453

* test(components): [page-header] add classes slots rendering case

* fix(components): [select] input width fills the remaining width (#19292)

* fix(components): [select] input width fills the remaining width

closed #17886

* fix: type

* feat(components): [select, select-v2] add loading class to validateIcon (#19379)

fix(components): [select, select-v2] add loading class to validateIcon

* chore: update doc (#19479)

* perf(components): [table] prioritize use rowKey to determine whether it is selected (#19451)

* perf(components): [table] use rowKey to determine whether it is selected

* chore: revert includes

* perf: use includes replace isEqual

* feat(components): [table] add allow-drag-last-column prop (#19374)

* chore: Update changelog 2.9.2 (#19491)

chore: update changelog 2.9.2

* chore: format dropdown docs (#19495)

* fix(components): [description] `labelWidth` is invalid when no border (#19162)

* fix(components): [description] `labelWidth` is invalid when no border

* test: add test case

* fix(hooks): [use-lockscreen] remove hiddenCls (#19429)

* fix(hooks): [use-lockscreen] remove hiddenCls

* fix(hooks): [useLockscreen] unit test

* test(hooks): [useLockscreen] should not cleanup when not all unmounted

* test(hooks): [useLockscreen] update test

* test(hooks): [useLockscreen] update test

* feat(components): [dialog/drawer] add custom sub classes (#19099)

* feat(components): [dialog/drawer] add custom sub classes

* docs(components): add custom classes for drawer/dialog slots

* docs(components): [dialog/drawer] keep same description

* test: add dialog/drawer sub classes

* refactor: sync typo docs with props

* chore: change release version

* chore: rename

* chore: fix doc

---------

Co-authored-by: btea <2356281422@qq.com>

* chore: upgrade puppeteer to 23.11.1 (#19500)

* ci: update test-ssr.yml (#19521)

* fix(components): [form] on post rules update reset field (#19129)

* fix(components): [form] track rules on post update

closed #19109

* fix(components): [form] ensure reset field state if no rules

closed #19128

* test: add validate on rule change case

* chore: on rules update reset field error

* chore: fixup

---------

Co-authored-by: btea <2356281422@qq.com>

* fix(components): [tabs] set modelValue synchronously if beforeLeave is not set or is synchronous (#19387)

* fix: [tabs] sync modelValue if beforeLeave is not set or is synchronous

* feat: add unit test

* feat(i18n): add Hindi language (#19483)

* feat(i18n): add Hindi language

* feat(i18n): update component and hindi translations

* feat(i18n): update lint

* docs: [collapse] change event parameter type error (#19539)

* chore: fix handleChange type error

* Update docs/examples/collapse/custom-icon.vue

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* fix(components): [select] make sure the e-tag is not obstructed(#19529) (#19534)

Co-authored-by: baiwusanyu-c <chenzhihui@chabaidao.com>

* ci: run pkg.new when push (#19544)

* docs: [button] add description (#19536)

* ci: stop run pkg.new when push (#19545)

* improvement(components): [text] add the title attribute (#19496)

* improvement(components): [text] keep the inherited title attribute (#19551)

* improvement(components): [text] keep the inherited title attribute

* fix: content update recalculation

* fix(components): [dialog] fix scroll bar not resetting to top on reopen (#19471)

* fix(components): [dialog] Fix scroll bar not resetting to top on reopen

closed #19420

* fix(components): update

* fix(components): [dialog] update

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* test: [table] add show-overflow-tooltip trigger (#19556)

* test: [table] add show-overflow-tooltip trigger

* test: [table] add show-overflow-tooltip trigger

* feat(i18n): add Norsk(no) language (#19523)

* chore: update doc ui (#19586)

* style(components): [dialog] no rounded when in fullscreen (#19583)

* feat(component): [time-select] add include end time attribute (#19253)

* feat: [time-select] init includeEndTime 🚧

* test: time-select includeEndTime 🚧

* refactor: renaming & cleanup

* test(components): [time-select] add includeEndTime cases 

* docs(components): [time-select] add `includeEndTime` attribute

* chore: change release version

* chore: set `includeEndTime` default to false

* docs: fix props typo

* chore: remove useless assignment

* chore: rename optionValue to currentTime

* chore: update release version

* Revert "ci: update test-ssr.yml" (#19610)

Revert "ci: update test-ssr.yml (#19521)"

This reverts commit eab540a3f7.

* chore: Update changelog 2.9.3 (#19611)

chore: update changelog 2.9.3

* chore: [time-picker] correct typo in `timePickerRangeTriggerProps` (#19487)

* fix: correct typo in timePickerRangeTriggerProps

* chore: deprecate misspelled export `timePickerRngeTriggerProps`

---------

Co-authored-by: btea <2356281422@qq.com>

* chore(docs): implement dynamic links for playground based on preview state (#19612)

* docs: [calendar] add exposes (#19593)

* docs: [calendar] add exposes

* Apply suggestions from code review

add translation characters

Co-authored-by: btea <2356281422@qq.com>

* docs: [calendar] format the exposes table

---------

Co-authored-by: btea <2356281422@qq.com>

* feat(components): [image-viewer] add showPreview method (#19466)

* feat(components): [image-viewer] add showPreview method

* docs(components): [image] update showPreview method version to 2.9.4

* chore: enable fileNesting config (#19615)

* docs(components): [table-v2] add `indent-size` (#19621)

docs(components): [table-v2] add `indent-size`

Co-authored-by: gongbei <gongbei@wps.cn>

* chore: [message-box] remove @ts-nocheck directive (#19277)

* chore: [message-box] remove @ts-nocheck directive

* fix: type

* Update packages/components/message-box/src/index.vue

Co-authored-by: qiang <qw13131wang@gmail.com>

---------

Co-authored-by: qiang <qw13131wang@gmail.com>

* feat(locale): add language Chinese Hongkong and Chinese Macau (#19608)

* feat(components): [select] add popup-scroll event (#19589)

* feat(components): [select] add popup-scroll event

* Update docs/en-US/component/select.md

Co-authored-by: btea <2356281422@qq.com>

* chore: format

---------

Co-authored-by: btea <2356281422@qq.com>
Co-authored-by: warmthsea <2586244885@qq.com>

* docs: add code file-title and icon (#19638)

* docs: add code file-title and icon

* chore: update deps

* docs: add lang records (#19650)

* chore: [tree] remove unused arg (#19255)

* feat(i18n): add Telugu language (#19624)

* feat(i18n): add Telugu language

* chore(i18n): added missing keys in Telugu locale

* chore: format telugu locale file.

* chore(locale): fix lint in te.ts

* docs: add lang records

* feat(components): [image-viewer] add `progress` slot and `show-progress` props (#19465)

* refactor(components): simplify computed properties in image-viewer

* feat(components): [image-viewer] add progress number

* test(components): remove console logs from image-viewer tests

* feat(components): [image-viewer] update progress display and style

* test(components): update progress selector in image-viewer tests

* feat(components): [image-viewer] add slot support for progress display

* docs(components): [image] add progress content description

* docs(components): update docs

* feat(components): [image] simplify progress slot binding

* docs(components): update

* Update packages/components/image-viewer/__tests__/image-viewer.test.tsx

Co-authored-by: btea <2356281422@qq.com>

* Update docs/en-US/component/image.md

Co-authored-by: btea <2356281422@qq.com>

* docs: update progress version in image documentation

* Update packages/components/image-viewer/src/image-viewer.vue

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* feat: add showProgress props

* docs: add demo

* docs: update v

* Update docs/en-US/component/image.md

Co-authored-by: btea <2356281422@qq.com>

---------

Co-authored-by: btea <2356281422@qq.com>
Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* fix(components): [table-footer] update cols width on layout change (#19064)

fix(components): [table-footer]

update cols width on layout change

closed #19054

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* fix(ci): types & dark theme sync with pr (#19668)

ci: set whole pr bundle

* fix(ci): move all bundle to docs dist (#19671)

* docs: format table-v2 & use actions/upload-artifact v4 (#19670)

* docs: format table-v2

* chore: update actions/upload-artifact

* chore: update

* chore: update

* feat(components): [image-viewer] add toolbar slot (#19497)

* feat(components): [image-viewer] add toolbar slot

* feat(docs): add docs

* docs: update

* docs: update

* docs: update image viewer API types for clarity

* docs: update custom toolbar version in image documentation to 2.9.4

* Update docs/examples/image/custom-toolbar.vue

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* style: remove dividers

* revert: style

* docs: format

---------

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* docs: [menu] `left-and-right` example style tag add scoped (#19654)

Update left-and-right.vue

防止文档演示项目整页元素布局样式被修改

Co-authored-by: btea <2356281422@qq.com>

* docs: [tree-v2] fix style error and remove annotation (#19681)

* docs: [transfer] fix type error (#19682)

* feat(components): [cascader] add `prefix` slot (#19631)

* feat(components): [cascader] add prefix slot

* docs(components): [cascader] add preview slot

* Revert "docs(components): [cascader] add preview slot"

This reverts commit 1a40ca13ea.

* docs(components): [cascader] revert for typo

* fix(components): do not render prefix if prefix slot is not used

* docs(components): [cascader] prefix version number added

Co-authored-by: btea <2356281422@qq.com>

* docs(components): [cascader] format docs

---------

Co-authored-by: btea <2356281422@qq.com>

* fix(components): [table] selection-change event emit incorrectly (#19618)

* feat(components): [table] fix 'selection-change' event emit incorrectly

* fix(components): [table] add test case

* docs: [timeline] fix type error (#19688)

* docs: [timeline] fix type error

* Update docs/examples/timeline/custom-node.vue

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* Update docs/examples/timeline/custom-node.vue

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

---------

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* docs: [dropdown] add `button-props` prop (#19694)

docs: [dropdown] add `button-props` prop

Co-authored-by: Bruce Lu <smallbone.lu@gmail.com>

* docs: [tabs] fix type error (#19690)

* docs: [switch] fix type error (#19704)

* fix(components): [table] The index parameter of the selectable function is undefined (#19587)

* fix(components): [table] first record can not be checked

* fix(components): [table] last commit doesnt work for others index

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* test(components): [table] add test cases

* test(components): [table] modify the test case of the last submission

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
Co-authored-by: btea <2356281422@qq.com>

* fix(components): [autocomplete] prevent closing if focus is inside popper content (#19522)

fix: [autocomplete] prevent closing if focus is inside popper content

* docs: [layout] add a tip for layout column (#19669)

docs: layout add tip

* docs: [checkbox] fix intermediate example type error (#19713)

docs: [checkbox] fix type error

* docs: [input-number] fix type error (#19712)

* docs: fix Exposes error (#19733)

* feat(components): [table] add tooltip-formatter table & table-column prop (#19524)

* feat(components): [table] add `tooltip-formatter` table-column prop

closed #19507

* docs: add example

* docs: demo remove tooltip formatter index

* refactor(components): refactor code

* docs: simpify tooltip demo

* fix: fix warning error

* feat(components): add table tooltip-formatter prop & merge slot

* refactor: reuse variables

* test: add tooltip-formatter test

* docs: upgrade version

* feat(components): [table] add `tooltip-formatter` table-column prop

closed #19507

* docs: add example

* docs: demo remove tooltip formatter index

* refactor(components): refactor code

* docs: simpify tooltip demo

* fix: fix warning error

* feat(components): add table tooltip-formatter prop & merge slot

* refactor: reuse variables

* test: add tooltip-formatter test

* docs: upgrade version

* refactor: change parameter to obj args

* fix: property change to prop

* fix: export `TableOverflowTooltipFormatterData`

* refactor: `TableOverflowTooltipFormatterData` to `TableTooltipData`

* fix: remove useless import

* fix: refactor code

---------

Co-authored-by: btea <2356281422@qq.com>

* docs: search input default focus (#19724)

* docs: search input default focus

* fix(docs): ensure search input is focused after component mounts

* revert: update

* Update docs/.vitepress/vitepress/components/globals/overview.vue

Co-authored-by: qiang <qw13131wang@gmail.com>

* Update docs/.vitepress/vitepress/components/globals/overview.vue

Co-authored-by: qiang <qw13131wang@gmail.com>

* docs: update

---------

Co-authored-by: qiang <qw13131wang@gmail.com>

* fix(components): [input] refused to apply inline style because it violates csp (#19541)

fix(components): [input] CSP support #15065

`element.setAttribute('style', 'css code')` violate Content Security Policy (CSP)
using `element.style.setProperty()` instead

* docs: [tooltip] fix type error (#19687)

* docs: fix type error

* docs: [tooltip] remove unnecessary width and height in mousemove handler

* fix: update

* fix: update

* fix(components): [table-v2] make the fixed columns scroll like mainTable (#19104)

fix(components): [table-v2] Make the fixed columns scroll like mainTable

Make the fixed columns behave like the mainTable, where the rows containing fixedData stick in
place, and the rest of the rows scroll.

closed #19103

* fix(components): [cascader-panel] lazy return children can't get value (#19100)

* fix(components): [cascader-panel] lazy return children can't get value

fix #9157

closed #9157

* fix: update

* fix(components): [table] fix the logic of `selection` column when `fixed` state changes dynamically (#19703)

* fix(components): [table] selection column fixed left

* fix(components): [table] optimize function

* fix(components): [table] add dynamic columns test case

* fix(components): [table] the toggleTreeExpansion failed to trigger load function (#18728)

* feat(components): [table] fix lazy loading

* Modify the function usage

* chore: format `dropdown.md` (#19758)

chore: format dropdown.md

* feat(locale): export zhHk/zhMo (#19762)

* docs: [calendar] add CalendarDateType Type Declarations (#19766)

docs: [calendar] add Type Declarations

* chore: update doc (#19770)

* fix(components): [table-v2] reset `lastVisitedColumnIdx` if width change (#19757)

fix(components): [table-v2] reset lastVisitedColumnIdx if width change

* ci: fix corepack matching keyid error (#19783)

* docs: [scrollbar] fix type error (#19697)

* docs: [scrollbar] fix type error

* refactor(docs): improve code structure and type annotations in examples

* Update docs/examples/scrollbar/manual-scroll.vue

Co-authored-by: btea <2356281422@qq.com>

* fix(docs): replace lodash isNumber with typeof check

* fix(docs): update

---------

Co-authored-by: btea <2356281422@qq.com>

* chore(components): [cascader-node] remove ts-nocheck and fix type error (#19776)

* chore(components): [CascaderNode] remove ts-nocheck and fix type error

* chore: format

---------

Co-authored-by: warmthsea <2586244885@qq.com>

* feat(locale): export Norsk(no) (#19747)

feat(locale): export Norsk(no)

Added Norwegian language reference

Co-authored-by: btea <2356281422@qq.com>

* feat(locale): export missing language (#19790)

feat(locale): export missing locale

* chore: Update changelog 2.9.4 (#19792)

chore: update changelog 2.9.4

* docs: optimization API style (#19793)

* docs: optimization API style

* chore: Transfer

* chore: update

* fix: update

* chore(components): [tree] remove ts-nocheck and fix type error (#19777)

* chore(components): [tree] remove ts-nocheck and fix type error

* refactor: refactor

---------

Co-authored-by: btea <2356281422@qq.com>

* chore: update doc (#19831)

* fix(components): [message-box] init validator (#19832)

* fix(components): [message-box] init validator
* fix: update

---------
Co-authored-by: xingyixiang <452282988@qq.com>

* docs: [message-box] update options default value (#19833)

* refactor(components): [menu] change to `script setup` writing  and optimizing code (#19816)

* refactor(components): [menu] refactor

* Update packages/components/menu/src/menu-collapse-transition.vue

* refactor(components): migrate ElMenuItem to Composition API

* fix: update

* chore: chore

* refactor: refactor

* revert: revert

* refactor: refactor

* revert: revert

* fix: Expose

* Update packages/components/menu/src/menu-item.vue

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

---------

Co-authored-by: sea <45450994+warmthsea@users.noreply.github.com>

* refactor: [menu] add necessary braces (#19840)

* fix(components): [tree-select] dynamic bind class invalid (#19803)

* test: [tree-select] dynamic class case (#19859)

* chore: change create issue use (#19865)

* feat(components): [dropdown] add `persistent` prop (#19797)

* feat(components): add persistent attribute

* Update docs/en-US/component/dropdown.md

Co-authored-by: btea <2356281422@qq.com>

* fix: docs

---------

Co-authored-by: btea <2356281422@qq.com>

* fix(components): [table] compatible with window non-existence (#19837)

ElTable's doLayout method is debounced and scheduled (relying on setTimeout) which causes problems in testing(Vitest). Sometimes the testing environment(jsdom) is destroyed before doLayout() executes which causes error due to requestAnimationFrame not existing.
To mitigate this issue can check if the window exists which is a good indication that jsdom has not been thorn down yet.

* feat(components): [menu] add `persistent` prop (#19874)

feat(components): [menu] add persistent prop

* refactor: [time-picker] optimize type declaration (#19875)

chore: [time-picker] optimize type declaration

* fix(components): [select] solve memory leak (#19709)

fix(components): solve memory leak

Watching the value of an attribute of an option can lead to a memory leak

closed #19680

Co-authored-by: 张东 <A80784@internet.com>

* chore: [tree] export types (#19846)

* chore: [tree] export type and fix the type error of the docs

* revert: revert

* revert: revert

* feat(components): [cascader] add suggestion slot (#19866)

* feat(components): [cascader] add suggestion-item slot

* docs:  add version to suggestion item slot demo

Co-authored-by: btea <2356281422@qq.com>

* Update docs/en-US/component/cascader.md

---------

Co-authored-by: btea <2356281422@qq.com>

* fix(components): [steps] update border-color to support safari (#19726)

* fix(components): [description] tsx rendering functional component error (#19879)

* fix(components): [description] tsx render

* fix: update

* fix: update

* test: add test case

* fix(components): [cascader] prevent default behavior when pressing a key to toggle suggestion list (#19897)

fix(components): [cascader] suggestion key-down scroll warn

* feat(components): [message-box] support custom close icon in message-box (#18168)

* fix(components): [message-box] vue warning when closeIcon is component (#19901)

* docs: [button] update default value and description (#19903)

* fix(components): [select] ensure scrollbar syncs when scrolling to selected option (#19636)

* fix: ensure scrollbar syncs when scrolling to selected option

* feat: update scrollbar when drop-down menu is displayed

* fix(components): [tree-select] search solve memory leak (#19895)

* fix(components): [tree-select] search solve memory leak

* feat: update

* fix: test

* chore: update test

* feat(components): [slider] add `persistent` prop (#19889)

* feat(components): [Slider] add persistent prop

* fix(components): [slider] update persistent prop

* fix(components): [slider] rename persistent prop to tooltipPersistent

* Update docs/en-US/component/slider.md

Co-authored-by: btea <2356281422@qq.com>

* chore: formatted

* fix(components): [slider] update description for persistent prop

---------

Co-authored-by: btea <2356281422@qq.com>

* docs(components): [dropdown] update description and example (#19908)

docs(components): [dropdown]update description and example

* docs(components): [tree] change `customized-node` example (#19907)

* test: other branch commit pr.new

* ci: update

---------

Co-authored-by: ly-yewu <leiyu_yewu@cmss.chinamobile.com>
Co-authored-by: leiyu <leiyu@cmss.chinamobile.com>
Co-authored-by: btea <2356281422@qq.com>
Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
Co-authored-by: qiang <qw13131wang@gmail.com>
Co-authored-by: Lo <l709937065@gmail.com>
Co-authored-by: 0song <82012629+0song@users.noreply.github.com>
Co-authored-by: Element <wallement@gmail.com>
Co-authored-by: Liao-js <43257608+Liao-js@users.noreply.github.com>
Co-authored-by: DDDDD12138 <43703884+DDDDD12138@users.noreply.github.com>
Co-authored-by: steveWang13 <107922326+steveWang13@users.noreply.github.com>
Co-authored-by: jiaxiang <zj.x9872@foxmail.com>
Co-authored-by: 白雾三语 <32354856+baiwusanyu-c@users.noreply.github.com>
Co-authored-by: baiwusanyu-c <chenzhihui@chabaidao.com>
Co-authored-by: 晚风予星 <75473409+lxKylin@users.noreply.github.com>
Co-authored-by: Meet you <wjp_github@163.com>
Co-authored-by: xingyixiang <452282988@qq.com>
Co-authored-by: changehu <814394170@qq.com>
Co-authored-by: iamkun <kunhello@outlook.com>
Co-authored-by: betavs <34408516+betavs@users.noreply.github.com>
Co-authored-by: LAMMU <38106851+LAMMUpro@users.noreply.github.com>
Co-authored-by: jiaxiang <zjx9987@gmail.com>
Co-authored-by: baclona <853940223@qq.com>
Co-authored-by: gongbei <gongbei@wps.cn>
Co-authored-by: Mark J <markpro.code@gmail.com>
Co-authored-by: Mouli Bheemaneti <57999522+moulibheemaneti@users.noreply.github.com>
Co-authored-by: Jiankian <i@anline.cn>
Co-authored-by: David Kitano <63226115+DavidKitano@users.noreply.github.com>
Co-authored-by: Nick Wu <38874640+wNing50@users.noreply.github.com>
Co-authored-by: smallbone <lue2048@163.com>
Co-authored-by: Bruce Lu <smallbone.lu@gmail.com>
Co-authored-by: 伊墨 <1905672206@qq.com>
Co-authored-by: 知晓同丶 <zhixiaotong.me@qq.com>
Co-authored-by: hanchao-c0ldwave <hanchao@cmss.chinamobile.com>
Co-authored-by: coderchang <coderchang0105@gmail.com>
Co-authored-by: pengpeng <30883395+webvs2@users.noreply.github.com>
Co-authored-by: Delyan Haralanov <purepear@gmail.com>
Co-authored-by: 锌小子 <2252647301@qq.com>
Co-authored-by: 张东 <A80784@internet.com>
Co-authored-by: DiamondYuan <541832074@qq.com>
Co-authored-by: xion <65892539+xionkq@users.noreply.github.com>
Co-authored-by: zhuft-moon <zhufengting_yewu@cmss.chinamobile.com>
Co-authored-by: dengguangmiaoyyds <gujiao_yewu@cmss.chinamobile.com>
2025-02-21 11:10:37 +08:00

27 KiB

title, lang
title lang
Select en-US

Select

When there are plenty of options, use a drop-down menu to display and select desired ones.

:::tip

After version ^(2.5.0), the default width of el-select changed to 100%. When used in a inline form, the width will collapse. In order to display the width properly, you need to give el-select a specific width (eg: Example) .

:::

Basic usage

:::demo v-model is the value of el-option that is currently selected.

select/basic-usage

:::

Disabled option

:::demo Set the value of disabled in el-option to true to disable this option.

select/disabled-option

:::

Disabled select

Disable the whole component.

:::demo Set disabled of el-select to make it disabled.

select/disabled

:::

Clearable single select

You can clear Select using a clear icon.

:::demo Set clearable attribute for el-select and a clear icon will appear. Note that clearable is only for single select.

select/clearable

:::

Basic multiple select

Multiple select uses tags to display selected options.

:::demo Set multiple attribute for el-select to enable multiple mode. In this case, the value of v-model will be an array of selected options. By default the selected options will be displayed as Tags. You can collapse them to a text by using collapse-tags attribute. You can check them when mouse hover collapse text by using collapse-tags-tooltip attribute.

select/multiple

:::

Custom template

You can customize HTML templates for options.

:::demo Insert customized HTML templates into the slot of el-option.

select/custom-template

:::

Header of the dropdown ^(2.4.3)

You can customize the header of the dropdown.

:::demo Use slot to customize the content.

select/custom-header

:::

You can customize the footer of the dropdown.

:::demo Use slot to customize the content.

select/custom-footer

:::

Grouping

Display options in groups.

:::demo Use el-option-group to group the options, and its label attribute stands for the name of the group.

select/grouping

:::

Option filtering

You can filter options for your desired ones.

:::demo Adding filterable to el-select enables filtering. By default, Select will find all the options whose label attribute contains the input value. If you prefer other filtering strategies, you can pass the filter-method. filter-method is a Function that gets called when the input value changes, and its parameter is the current input value.

select/filterable

:::

Enter keywords and search data from server.

:::demo Set the value of filterable and remote with true to enable remote search, and you should pass the remote-method. remote-method is a Function that gets called when the input value changes, and its parameter is the current input value. Note that if el-option is rendered with the v-for directive, you should add the key attribute for el-option. Its value needs to be unique, such as item.value in the following example.

select/remote-search

:::

Create new items

Create and select new items that are not included in select options

:::demo By using the allow-create attribute, users can create new items by typing in the input box. Note that for allow-create to work, filterable must be true. This example also demonstrates default-first-option. When this attribute is set to true, you can select the first option in the current option list by hitting enter without having to navigate with mouse or arrow keys.

select/allow-create

:::

Use value-key attribute

If the binding value of Select is an object, make sure to assign value-key as its unique identity key name.

:::demo By using the value-key attribute, data with duplicate labels can be properly handled. The value of the label property is duplicated, but the option can be identified through the id.

select/value-key

:::

Custom Tag ^(2.5.0)

You can customize tags.

:::demo Insert customized tags into the slot of el-select. collapse-tags, collapse-tags-tooltip, max-collapse-tags will not work.

select/custom-tag

:::

Custom Loading ^(2.5.2)

Override loading content.

:::demo

select/custom-loading

:::

Empty Values ^(2.7.0)

If you want to support empty string, please set empty-values to [null, undefined].

If you want to change the clear value to null, please set value-on-clear to null.

:::demo

select/empty-values

:::

Custom Label ^(2.7.4)

You can customize label.

:::demo

select/custom-label

:::

Select API

Attributes

Name Description Type Default
model-value / v-model binding value ^[string] / ^[number] / ^[boolean] / ^[object] / ^[array]
multiple whether multiple-select is activated ^[boolean] false
disabled whether Select is disabled ^[boolean] false
value-key unique identity key name for value, required when value is an object ^[string] value
size size of Input ^[enum]'' | 'large' | 'default' | 'small'
clearable whether select can be cleared ^[boolean] false
collapse-tags whether to collapse tags to a text when multiple selecting ^[boolean] false
collapse-tags-tooltip ^(2.3.0) whether show all selected tags when mouse hover text of collapse-tags. To use this, collapse-tags must be true ^[boolean] false
multiple-limit maximum number of options user can select when multiple is true. No limit when set to 0 ^[number] 0
name the name attribute of select input ^[string]
effect tooltip theme, built-in theme: dark / light ^[enum]'dark' | 'light' / ^[string] light
autocomplete the autocomplete attribute of select input ^[string] off
placeholder placeholder, default is 'Select' ^[string]
filterable whether Select is filterable ^[boolean] false
allow-create whether creating new items is allowed. To use this, filterable must be true ^[boolean] false
filter-method custom filter method ^[Function]() => void
remote whether options are loaded from server ^[boolean] false
remote-method custom remote search method ^[Function]() => void
remote-show-suffix in remote search method show suffix icon ^[boolean] false
loading whether Select is loading data from server ^[boolean] false
loading-text displayed text while loading data from server, default is 'Loading' ^[string]
no-match-text displayed text when no data matches the filtering query, you can also use slot empty, default is 'No matching data' ^[string]
no-data-text displayed text when there is no options, you can also use slot empty, default is 'No data' ^[string]
popper-class custom class name for Select's dropdown ^[string] ''
reserve-keyword when multiple and filterable is true, whether to reserve current keyword after selecting an option ^[boolean] true
default-first-option select first matching option on enter key. Use with filterable or remote ^[boolean] false
teleported whether select dropdown is teleported, if true it will be teleported to where append-to sets ^[boolean] true
append-to ^(2.8.4) which element the select dropdown appends to ^[string]
persistent when select dropdown is inactive and persistent is false, select dropdown will be destroyed ^[boolean] true
automatic-dropdown for non-filterable Select, this prop decides if the option menu pops up when the input is focused ^[boolean] false
clear-icon custom clear icon component ^[string] / ^[object]Component CircleClose
fit-input-width whether the width of the dropdown is the same as the input ^[boolean] false
suffix-icon custom suffix icon component ^[string] / ^[object]Component ArrowDown
tag-type tag type ^[enum]'' | 'success' | 'info' | 'warning' | 'danger' info
tag-effect ^(2.7.7) tag effect ^[enum]'' | 'light' | 'dark' | 'plain' light
validate-event whether to trigger form validation ^[boolean] true
offset ^(2.8.8) offset of the dropdown ^[number] 12
show-arrow ^(2.8.8) whether the dropdown has an arrow ^[boolean] true
placement ^(2.2.17) position of dropdown ^[enum]'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' bottom-start
fallback-placements ^(2.5.6) list of possible positions for dropdown popper.js ^[array]Placement[] ['bottom-start', 'top-start', 'right', 'left']
max-collapse-tags ^(2.3.0) the max tags number to be shown. To use this, collapse-tags must be true ^[number] 1
popper-options popper.js parameters ^[object]refer to popper.js doc {}
aria-label ^(a11y) same as aria-label in native input ^[string]
empty-values ^(2.7.0) empty values of component, see config-provider ^[array]
value-on-clear ^(2.7.0) clear return value, see config-provider ^[string] / ^[number] / ^[boolean] / ^[Function]
suffix-transition ^(deprecated) animation when dropdown appears/disappears icon ^[boolean] true
tabindex ^(2.9.0) tabindex for input ^[string] / ^[number]

:::warning

suffix-transition has been deprecated, and will be removed in ^(2.4.0), please use override style scheme.

:::

Events

Name Description Type
change triggers when the selected value changes ^[Function](value: any) => void
visible-change triggers when the dropdown appears/disappears ^[Function](visible: boolean) => void
remove-tag triggers when a tag is removed in multiple mode ^[Function](tagValue: any) => void
clear triggers when the clear icon is clicked in a clearable Select ^[Function]() => void
blur triggers when Input blurs ^[Function](event: FocusEvent) => void
focus triggers when Input focuses ^[Function](event: FocusEvent) => void
popup-scroll ^(2.9.4) triggers when dropdown scrolls ^[Function](data:{scrollTop: number, scrollLeft: number}) => void

Slots

Name Description Subtags
default option component list Option Group / Option
header ^(2.4.3) content at the top of the dropdown
footer ^(2.4.3) content at the bottom of the dropdown
prefix content as Select prefix
empty content when there is no options
tag ^(2.5.0) content as Select tag
loading ^(2.5.2) content as Select loading
label ^(2.7.4) content as Select label

Exposes

Name Description Type
focus focus the Input component ^[Function]() => void
blur blur the Input component, and hide the dropdown ^[Function]() => void
selectedLabel ^(2.8.5) get the currently selected label ^[object]ComputedRef<string | string[]>

Option Group API

Attributes

Name Description Type Default
label name of the group ^[string]
disabled whether to disable all options in this group ^[boolean] false

Slots

Name Description Subtags
default customize default content Option

Option API

Attributes

Name Description Type Default
value value of option ^[string] / ^[number] / ^[boolean] / ^[object]
label label of option, same as value if omitted ^[string] / ^[number]
disabled whether option is disabled ^[boolean] false

Slots

Name Description
default customize default content