---
title: flexi-multiselect
---

Das Mehrfachauswahl-Feld zeigt eine Liste von Optionen, aus denen der Benutzer einen oder mehrere Einträge wählen kann. Die zur Auswahl stehenden Optionen lassen sich entweder fest im Feld hinterlegen oder dynamisch aus einer anderen Quelle (Datenliste, anderes Kapitel oder Tabelle) laden. Über die maximale Auswahl wird gesteuert, wie viele Einträge gleichzeitig gewählt werden dürfen.

## Einstellungen

| Einstellung | Beschreibung |
|---|---|
| Bezeichnung | Der angezeigte Text über dem Feld |
| Name | Eindeutiger Bezeichner des Feldes (wird automatisch aus der Bezeichnung abgeleitet) |
| Pflichtfeld | Wenn aktiv, muss mindestens eine Option ausgewählt sein |
| Fehlertext | Meldung, die unterhalb des Feldes erscheint, wenn das Pflichtfeld leer bleibt |
| Platzhalter | Hinweistext, der im Feld angezeigt wird, solange noch keine Auswahl getroffen wurde |
| Maximale Auswahl | Maximale Anzahl gleichzeitig auswählbarer Optionen. Bei `1` schließt sich die Liste nach der Auswahl automatisch; bei höheren Werten bleibt die Liste für weitere Auswahlen geöffnet |
| Optionen | Statische Liste der zur Auswahl stehenden Werte. Die Reihenfolge kann per Drag-and-Drop angepasst werden |
| Erweiterte Einstellungen | Konfiguration einer dynamischen Quelle, eines Filters und der Validierungsregeln (siehe unten) |

## Optionen: statisch oder dynamisch

Ein Mehrfachauswahl-Feld bezieht seine Auswahlmöglichkeiten **entweder** aus einer fest hinterlegten Liste **oder** aus einer dynamischen Quelle. Beides gleichzeitig ist nicht möglich.

### Statische Optionen

Die Optionen werden direkt im Feld als Liste angelegt und über die Plus-Schaltfläche bearbeitet. Die Reihenfolge im Feld entspricht der Reihenfolge in der Auswahlliste und kann per Drag-and-Drop verändert werden.

Sind statische Optionen vorhanden, sind die Felder der dynamischen Quelle in den erweiterten Einstellungen gesperrt.

### Dynamische Quelle

Wird das Feld leer gelassen und stattdessen in den **Erweiterten Einstellungen** eine Quelle eingetragen, werden die Auswahlmöglichkeiten zur Laufzeit geladen. Die Quelle wird im Feld **Quelle** in einer der folgenden Schreibweisen eingetragen:

| Quelle | Bedeutung |
|---|---|
| `collection=<pfad>` | Werte aus einer zentralen Datenliste, z. B. `collection=demo/reiniger` |
| `multisection=<name>` | Werte aus den Einträgen einer Multisection (mehrfach angelegter Abschnitt) |
| `multichapter=<name>` | Werte aus den Einträgen eines Multichapter (mehrfach angelegtes Kapitel) |
| `dynamictable=<koordinate>` | Werte aus einer Spalte einer dynamischen Tabelle, z. B. `dynamictable=kapitel.abschnitt.tabelle` |

Zusätzlich stehen folgende Felder zur Verfügung:

| Einstellung | Beschreibung |
|---|---|
| Schlüsselfeld | Name der Eigenschaft, die je Eintrag in der Auswahlliste angezeigt werden soll (z. B. `bezeichnung`, `artikelnummer`). Pflichtangabe, sobald eine Quelle gesetzt ist |
| Filterfeld | (Nur Datenliste) Name der Eigenschaft, nach der die Einträge gefiltert werden |
| Filterwert | (Nur Datenliste) Wert, mit dem das Filterfeld verglichen wird. Möglich sind ein fester Text, eine Koordinate (`$kapitel.abschnitt.feld`) oder eine Eigenschaft eines anderen Feldes (`$kapitel.abschnitt.feld§eigenschaft`) |

**Filter** wirken nur in Verbindung mit der Quelle `collection=…`. Filterfeld und Filterwert müssen entweder beide gesetzt oder beide leer sein.

**Hinweise zur Quellenwahl:**

- Sind sowohl statische Optionen als auch eine Quelle hinterlegt, hat die statische Liste Vorrang. In diesem Fall erscheint im Feld ein Hinweis und die Quelle bleibt wirkungslos. Über die Schaltfläche **Quelle entfernen** lassen sich die nicht mehr benötigten Quellfelder leeren.
- Bei schreibgeschützten Dokumenten werden dynamische Quellen nicht erneut geladen; die zuletzt gespeicherten Werte bleiben sichtbar.
- Ohne Internetverbindung erscheint ein Warnhinweis, wenn eine dynamische Quelle nicht geladen werden konnte.

## Als Auslöser für „Eingabe deaktivieren" [#als-ausloser-fur-eingabe-deaktivieren]

Eine Mehrfachauswahl kann als **abhängiges Feld** dienen, um andere Felder (z. B. Schalter, Eingabefelder, Tabellen) abhängig zu sperren. Dabei gilt:

- **Leer** bedeutet, dass nichts ausgewählt ist; **gesetzt** bedeutet, dass mindestens ein Eintrag ausgewählt ist.
- Ein **Vergleichswert** stimmt überein, sobald *einer* der ausgewählten Einträge ihm entspricht. Bei einer dynamischen Quelle kann mit dem angezeigten Wert oder der ID eines Eintrags verglichen werden.

## Validierungsregeln

Mehrfachauswahl-Felder unterstützen eine kleine Auswahl an Prüfungsregeln aus dem allgemeinen Regelsystem (siehe [Prüfungsregeln](/components/rules)). Sind Regeln hinterlegt, erscheint rechts neben dem Feld ein Statussymbol:

- **Grüner Haken** – mindestens eine Regel ist erfüllt
- **Rotes Kreuz** – keine der Regeln ist erfüllt

### Verfügbare Regeln [#verfugbare-regeln]

**`VALUE==wert`** - Mindestens eine der ausgewählten Optionen muss `wert` sein. Bei einer dynamischen Quelle prüft die Regel auf das Schlüsselfeld der ausgewählten Einträge.

```json
"rules": ["VALUE==in Ordnung"]
```

**`VALUE!=wert`** - `wert` darf **nicht** unter den ausgewählten Optionen sein.

```json
"rules": ["VALUE!=Nicht erforderlich"]
```

**Mehrere Alternativen** - Werden mehrere `VALUE==…`-Regeln hinterlegt, gilt die Prüfung als erfüllt, sobald **eine** davon zutrifft:

```json
"rules": [
  "VALUE==Option A",
  "VALUE==Option B"
]
```

**`COMPONENT:feld.length>n`** - Alternative: Die Prüfung gilt auch dann als erfüllt, wenn ein anderes Feld ausgefüllt ist (mindestens `n` Zeichen).

```json
"rules": [
  "VALUE==in Ordnung",
  "COMPONENT:bemerkung.length>0"
]
```

> Eine der Optionen muss "in Ordnung" sein **oder** es muss eine Bemerkung eingetragen sein.

### Pflichtfeld zusätzlich [#pflichtfeld-zusatzlich]

Ist das Feld als **Pflichtfeld** markiert und keine Option ausgewählt, gilt das Feld als ungültig - unabhängig von den Regeln. Der hinterlegte Fehlertext wird unterhalb des Feldes angezeigt.
