---
url: "https://vueda.dev/v3/reference/api/vue/FieldSetMany.md"
title: "FieldSetMany"
---

# FieldSetMany

## Overview

A field that manages a list of values by rendering one instance of
`manyComponent` per entry. Provides Add and Remove buttons so users can
grow or shrink the list. Every entry can be removed. Required lists need at
least one entry; optional lists may be empty. Added entries require a value.

Theme entry: [FieldSetMany](/v3/reference/theming/keys/FieldSetMany.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-iconOverride">iconOverride</span> | `Object` |  | `null` | A partial icon registry (`{ [componentName]: { [iconName]: { component, props } } }`) merged with inherited and default icon entries; scopes icon overrides to this component and its descendants. |
| <span id="prop-name">name</span> | `String` | yes |  | The field name, used as the path to look up and store the value in the form state. |
| <span id="prop-formModelName">formModelName</span> | `String` |  | `undefined` | The name of the form model for configuration lookup; usually provided by a parent field renderer. |
| <span id="prop-clearServerErrorDependents">clearServerErrorDependents</span> | `Array` |  | `() => []` | Other fields whose server errors should be cleared when this field's value changes. |
| <span id="prop-validationDependencies">validationDependencies</span> | `Array` |  | `() => []` | Other field paths this field depends on; their values are passed to validation and required functions. |
| <span id="prop-readOnly">readOnly</span> | `Boolean` |  | `false` | Whether the field is read-only; disables editing and skips required validation. |
| <span id="prop-required">required</span> | `Boolean` |  | `null` | Whether the field is required. |
| <span id="prop-requiredMessage">requiredMessage</span> | `String` |  | `"This field is required."` | Error message shown when a required field is left empty. |
| <span id="prop-shouldRequireFn">shouldRequireFn</span> | `Function` |  | `null` | Custom function called with resolved field dependency values; determines whether the field should be required. |
| <span id="prop-isRequiredViolation">isRequiredViolation</span> | `Function` |  | `null` | Custom function called with the current field value; checks whether the value violates the required rule. Defaults to rejecting null, undefined, empty string, false, and 0. |
| <span id="prop-validate">validate</span> | `Function` |  | `null` | Custom validation function called with the current field value and resolved field dependency values; should return true when valid or an error message string when invalid. |
| <span id="prop-label">label</span> | `String` |  | `null` | The label shown next to the field; defaults to the field name when omitted. |
| <span id="prop-help">help</span> | `String` |  | `""` | Help text displayed alongside the field. |
| <span id="prop-modelValue">modelValue</span> | `String\|Number\|Boolean\|Array\|Object` |  | `undefined` | The field's external model value; used only in contextless mode (v-model binding). |
| <span id="prop-contextless">contextless</span> | `Boolean` |  | `false` | When true, the field ignores any surrounding form context and manages its own state. |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-isRequiredViolation">isRequiredViolation</span> | `func` |  | `(value) => !Array.isArray(value) \|\| value.length === 0` | Checks whether the list violates its required rule; defaults to rejecting missing or empty arrays. |
| <span id="prop-manyComponent">manyComponent</span> | `object` | yes |  | The component used to render each individual entry in the list. |

## Slots

| Name | Scoped | Description |
| --- | --- | --- |
| `label` | yes | Override the field label. |
| `field(fieldName)` | yes | Override the rendered row for a specific field entry. |
| `default` | yes |  |
| `destroy` | yes | Override the delete button for a row. The slot receives `onClick`, `disabled`, and `index` as slot props; removal is disabled when the field is read-only. |
| `add` | yes | Override the add button. |
| `field-set-level-chores` |  | Override the validation block (help, errors, warnings) for this field set. |

[Full slot reference](/v3/reference/api/vue/FieldSetMany/slots.md)

## Events

| Name | Description |
| --- | --- |
| `update:modelValue` | Emitted when the field value changes. |

[Full event reference](/v3/reference/api/vue/FieldSetMany/events.md)

## Source

`client/lib/form/field-set/FieldSetMany.vue`
