Skip to content

FormSelect

The VFormSelect component is a form field that allows users to select a value from a dropdown list of options.

Usage

Basic Usage

To use the VFormSelect component, you must first provide it with an array of options. Each option should be an object with text and value properties, like this:

INFO

The VFormSelect component is registered globally when you install with @morpheme/ui. So you don't need to import it manually.

Disabled

To disable the VFormSelect component, you can use the disabled prop:

Error

If you are using the VFormSelect component with a form validation library, you can use the error prop to indicate that the form field has an error:

Label

You can use the label prop to specify a label for the VFormSelect component:

Validation

To use the VFormSelect component with a form validation library, you can use the name prop to bind the component to a form control. For example, with VeeValidate, you can use the useForm hook to create a form with validation schema:

Validation Mode

There are 2 modes. The first is eager mode, and the second is aggressive mode. The eager mode validates input when the blur event occurs. Meanwhile, aggressive mode validates the input every time the input itself changes. This can be useful when you are validating for example the minimum or maximum limits of an input.

You can change the default value for this validation mode by adding an attribute or property named validation-mode to this component.

Initial Values

To set initial values to the form, use the initialValues option in the useForm hook.

Props

NameTypeDefault
modelValueString''
itemsArray as PropType<VFormSelectItem[]>[]
itemTextString'text'
itemValueString'value'
nameString''
errorBooleanfalse
errorMessagesArray[]
sizeString''
disabledBooleanfalse
errorClassString''
rulesString''
labelString''
labelClassString''
wrapperClassString''
validationModeString as PropType<'aggressive' | 'eager'>'aggressive'
hintString''
hideErrorBooleanfalse

Events

update:modelValue

You can listen for the update:modelValue event to get notified when the value of the VFormSelect component changes.

Type:

ts
(e: 'update:modelValue', value: string): void`
(e: 'update:modelValue', value: string): void`

Example:

vue
<script setup lang="ts">
const onChange = () => console.log('Changed!');
</script>

<template>
  <VFormSelect @update:modelValue="onChange" />
</template>
<script setup lang="ts">
const onChange = () => console.log('Changed!');
</script>

<template>
  <VFormSelect @update:modelValue="onChange" />
</template>

Slots

None

CSS Variables

None

Standalone Installation

You can also install the VFormSelect component individually via @morpheme/forms package:

bash
yarn install @morpheme/forms
yarn install @morpheme/forms
vue
<script setup lang="ts">
import {VFormSelect} from '@morpheme/forms';
</script>

<template>
  <VFormSelect />
</template>
<script setup lang="ts">
import {VFormSelect} from '@morpheme/forms';
</script>

<template>
  <VFormSelect />
</template>

Storybook

View Storybook documentation here.