diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/forms/AbstractFormElement.java b/domino-ui/src/main/java/org/dominokit/domino/ui/forms/AbstractFormElement.java index 2af9ad9e..1271b4c9 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/forms/AbstractFormElement.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/forms/AbstractFormElement.java @@ -20,6 +20,7 @@ import elemental2.dom.HTMLElement; import elemental2.dom.HTMLFieldSetElement; +import elemental2.dom.Text; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -93,6 +94,8 @@ public abstract class AbstractFormElement, V private boolean focusValidationPaused = false; private boolean emptyAsNull; + private Text labelText = text(); + protected V defaultValue; private boolean showRequiredIndicator = true; @@ -107,6 +110,7 @@ public AbstractFormElement() { .addCss(dui_field_body) .appendChild(wrapperElement = div().addCss(dui_input_wrapper))); labelElement = LazyChild.of(label().addCss(dui_field_label), formElement); + labelElement.whenInitialized(() -> labelElement.element().appendChild(labelText)); messagesWrapper = LazyChild.of(div().addCss(dui_messages_wrapper), bodyElement); helperTextElement = LazyChild.of(span().addCss(dui_field_helper), messagesWrapper); errorElementSupplier = @@ -375,7 +379,8 @@ public String getHelperText() { */ @Override public T setLabel(String label) { - labelElement.get().setTextContent(label); + labelElement.get(); + labelText.textContent = label; return (T) this; }