Skip to main content

Your opinion matters! Together with you, we want to continuously improve KoliBri. Share your ideas, wishes, or suggestions—quickly and easily.

Select

This documentation is currently being revised and is in beta status. Content may still change.
This component is being retested for accessibility. The full test is still pending and can only be completed after a release.

Synonyms: Datalist, Dropdown

The Select component creates a selection list from which one or more predefined options can be selected.

Construction

Options (Label/Value/Disabled)
<KolSelect _label="Salutation" _options={[{"label":"Herr","value":"Mr."},{"label":"Frau","value":"Mrs."},{"label":"Firma","value":"Company"}]} />

Events

For the handling of events or callbacks, see .

EventtriggerValue
clickInput field is clicked-
focusInput field is focused-
blurInput field loses focus-
inputOption is selectedvalue attribute of option
changeOption is selectedvalue attribute of option

Usage

The choices are passed to the component as an object or JSON string via the _options attribute. The values ​​**label** and value must be specified for each option.

Example of the construction of the JSON object:

[
{ "label": "Herr", "value": "Mr." },
{ "label": "Frau", "value": "Mrs." },
{ "label": "Firma", "value": "Company" }
]

Specify individual height

Using the _rows attribute you can switch from a selection menu to a selection field (like _multiple) and set its height.

Best practices

  • Do not deactivate options of a select using disabled. Screen readers (tested with NVDA) count deactivated options and thus display a higher number of choices.
  • Often the first option is created as “Please select an option” and then deactivated to force a selection. This approach should be avoided.
  • Hiding a disabled option using aria-hidden is now blocked by modern browsers. If a wildcard option is needed, use a selectable option with an empty value instead.
  • Use validators to check whether a valid option has been chosen instead of disabling options without giving reasons.

Keyboard controls

buttonFunction
TabFocuses the selection field.
EnterOpens or closes the selection list.
Arrow keys (up/down)Changes the activated element in the selection list. This function is also active when the selection list is collapsed. With multiple selection, you must also hold down the shift key to select several entries.

Why does Select return a list for a single value? In single mode, Select returns an array with exactly one element. Use a custom value transformer to obtain the single value directly.

API

Properties

PropertyAttributeDescriptionTypeDefault
_accessKey_access-keyDefines the key combination that can be used to trigger or focus the component's interactive element.string | undefinedundefined
_disabled_disabledMakes the element not focusable and ignore all events.boolean | undefinedfalse
_hideLabel_hide-labelHides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.boolean | undefinedfalse
_hideMsg_hide-msgHides the error message but leaves it in the DOM for the input's aria-describedby.boolean | undefinedfalse
_hint_hintDefines the hint text.string | undefined''
_icons_iconsDefines the icon classnames (e.g. _icons="fa-solid fa-user").string | undefined | { right?: IconOrIconClass | undefined; left?: IconOrIconClass | undefined; }undefined
_label (required)_labelDefines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to false to enable the expert slot.stringundefined
_msg_msgDefines the properties for a message rendered as Alert component.Omit<AlertProps, "_on" | "_variant" | "_hasCloser" | "_label" | "_level"> & { _description: string; } | string | undefinedundefined
_multiple_multipleMakes the input accept multiple inputs.boolean | undefinedfalse
_name_nameDefines the technical name of an input field.string | undefinedundefined
_on--Gibt die EventCallback-Funktionen für das Input-Event an.InputTypeOnBlur & InputTypeOnClick & InputTypeOnChange & InputTypeOnFocus & InputTypeOnInput & InputTypeOnKeyDown | undefinedundefined
_options (required)_optionsOptions the user can choose from.(Option<StencilUnknown> | Optgroup<StencilUnknown>)[] | stringundefined
_required_requiredMakes the input element required.boolean | undefinedfalse
_rows_rowsMaximum number of visible rows of the element.number | undefinedundefined
_shortKey_short-keyAdds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.string | undefinedundefined
_tabIndex_tab-indexDefines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)number | undefinedundefined
_tooltipAlign_tooltip-alignDefines where to show the Tooltip preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'top'
_touched_touchedShows if the input was touched by a user.boolean | undefinedfalse
_value_valueDefines the value of the element.StencilUnknown[] | boolean | null | number | object | string | undefinedundefined

Methods

focus

focus() => Promise<void>

Sets focus on the internal element.

Returns

Type: Promise<void>

getValue() => Promise<StencilUnknown[] | StencilUnknown>

Returns the selected values.

Returns

Type: Promise<StencilUnknown | StencilUnknown[]>

Slots

SlotDescription
The label of the input field.

Examples