- Affected Version
- WoltLab Suite 5.4
UserFormField::create('userID')
->label('')
->nullable(),
AddressSelectionFormField::create('addressID')
->label('')
->addDependency(
NonEmptyFormFieldDependency::create('userID')
->fieldId('userID')
)
->required(),
Ist das Feld (initial) leer, funktioniert die Abhängigkeit korrekt:
Während dem Tippen funktioniert die Abhängigkeit korrekt.
Nach der Auswahl eines Items, ist das Resultat zwar der Logik nach richtig, aber faktisch ist das Feld leer:
Entferne ich das Item nun wieder, bleibt das abhängige Feld angezeigt:
Der Bug dahinter ist, dass das Feld nicht mit den entsprechenden Werten gesynct wird, sondern nach der Auswahl des items wieder leer ist. Würde hier wie eigentlich erforderlich DependencyManager.checkDependencies() ausgeführt, würde das abhängige Feld direkt wieder verschwinden.
Die korrekte Lösung wäre ein eigenes Input-Element zu erstellen, das die aktuelle Benutzer-Eingabe handelt und im eigentlichen Input-Element stets alle (ausgewählten) Elemente vorzuhalten. Wird der Abhängigkeitscheck dann getriggert - durch welches Element auch immer - verschwinden nicht fälschlicherweise Teile des Formulars.