Class TextField
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.BlurNotifier<TextField>,com.vaadin.flow.component.CompositionNotifier,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.Focusable<TextField>,com.vaadin.flow.component.FocusNotifier<TextField>,com.vaadin.flow.component.HasAriaLabel,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasEnabled,com.vaadin.flow.component.HasHelper,com.vaadin.flow.component.HasLabel,com.vaadin.flow.component.HasPlaceholder,com.vaadin.flow.component.HasSize,com.vaadin.flow.component.HasStyle,com.vaadin.flow.component.HasTheme,com.vaadin.flow.component.HasValidation,com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField,,String>, String> com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField,,String>, String> com.vaadin.flow.component.InputNotifier,com.vaadin.flow.component.KeyNotifier,com.vaadin.flow.component.shared.HasAllowedCharPattern,com.vaadin.flow.component.shared.HasClearButton,com.vaadin.flow.component.shared.HasPrefix,com.vaadin.flow.component.shared.HasSuffix,com.vaadin.flow.component.shared.HasThemeVariant<TextFieldVariant>,com.vaadin.flow.component.shared.HasTooltip,com.vaadin.flow.component.shared.HasValidationProperties,com.vaadin.flow.component.shared.InputField<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField,,String>, String> HasAutocapitalize,HasAutocomplete,HasAutocorrect,com.vaadin.flow.data.binder.HasValidator<String>,com.vaadin.flow.data.value.HasValueChangeMode,Serializable
Validation
Text Field comes with a built-in validation mechanism based on constraints. Validation is triggered whenever the user applies an input change, for example by pressing Enter or blurring the field. Programmatic value changes trigger validation as well. In eager and lazy value change modes, validation is also triggered on every character press with a delay according to the selected mode.
Validation verifies that the value satisfies the specified constraints. If any of the constraints are violated, the component is marked as invalid and an error message is displayed below the input.
The following constraints are supported:
Error messages for constraints can be configured with the
TextField.TextFieldI18n object, using the respective properties. If you want to
provide a single catch-all error message, you can also use the
setErrorMessage(String) method. Note that such an error message will
take priority over i18n error messages if both are set.
In addition to validation, constraints may also limit user input. For example, the browser will prevent the user from entering more text than specified by the max length constraint.
For more advanced validation that requires custom rules, you can use
Binder. By default, before running custom validators, Binder will
also check the component constraints and display error messages from the
TextField.TextFieldI18n object. The exception is the required constraint, for
which Binder provides its own API, see
asRequired().
However, if Binder doesn't fit your needs and you want to implement fully
custom validation logic, you can disable the constraint validation by setting
setManualValidation(boolean) to true. This will allow you to control
the invalid state and the error message manually using
HasValidationProperties.setInvalid(boolean) and setErrorMessage(String) API.
- Author:
- Vaadin Ltd
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C extends com.vaadin.flow.component.Component,V> Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
com.vaadin.flow.component.BlurNotifier.BlurEvent<C extends com.vaadin.flow.component.Component>Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
com.vaadin.flow.component.FocusNotifier.FocusEvent<C extends com.vaadin.flow.component.Component>Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue
com.vaadin.flow.component.HasValue.ValueChangeEvent<V>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>> -
Field Summary
Fields inherited from interface com.vaadin.flow.component.textfield.HasAutocapitalize
AUTOCAPITALIZE_ATTRIBUTEFields inherited from interface com.vaadin.flow.component.textfield.HasAutocomplete
AUTOCOMPLETE_ATTRIBUTEFields inherited from interface com.vaadin.flow.component.textfield.HasAutocorrect
AUTOCORRECT_ATTRIBUTEFields inherited from interface com.vaadin.flow.data.value.HasValueChangeMode
DEFAULT_CHANGE_TIMEOUT -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an emptyTextField.TextField(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a value change listener.Constructs an emptyTextFieldwith the given label.TextField(String label, com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a label and a value change listener.Constructs an emptyTextFieldwith the given label and placeholder text.TextField(String label, String initialValue, com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a label,a value change listener and an initial value.Constructs aTextFieldwith the given label, an initial value and placeholder text. -
Method Summary
Modifier and TypeMethodDescriptioncom.vaadin.flow.data.binder.Validator<String> getI18n()Gets the internationalization object previously set for this component.intGets the maximum number of characters (in Unicode code points) that the user can enter.intGests the minimum number of characters (in Unicode code points) that the user can enter.Gets the regular expression that the value is checked against during validation.getValue()Returns the current value of the text field.voidsetErrorMessage(String errorMessage) voidSets the internationalization object for this component.voidsetManualValidation(boolean enabled) voidsetMaxLength(int maxLength) Sets the maximum number of characters (in Unicode code points) that the user can enter.voidsetMinLength(int minLength) Sets the minimum number of characters (in Unicode code points) that the user can enter.voidsetPattern(String pattern) Sets a regular expression for the value to pass during validation.voidsetRequiredIndicatorVisible(boolean required) Sets whether the user is required to provide a value.voidSets the value of this text field.protected voidvalidate()Validates the current value against the constraints and sets theinvalidproperty and theerrorMessageproperty based on the result.Methods inherited from class com.vaadin.flow.component.textfield.TextFieldBase
addToInput, addToPrefix, addToSuffix, getAriaLabel, getAriaLabelledBy, getTitle, getValueChangeMode, getValueChangeTimeout, isAutofocus, isAutoselect, isRequired, isRequiredIndicatorVisible, setAriaLabel, setAriaLabelledBy, setAutofocus, setAutoselect, setLabel, setRequired, setTitle, setValueChangeMode, setValueChangeTimeoutMethods inherited from class com.vaadin.flow.component.AbstractSinglePropertyField
getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEventMethods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, isEmpty, setModelValue, valueEqualsMethods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListenerMethods inherited from interface com.vaadin.flow.component.CompositionNotifier
addCompositionEndListener, addCompositionStartListener, addCompositionUpdateListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, focus, getTabIndex, setTabIndexMethods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListenerMethods inherited from interface com.vaadin.flow.component.shared.HasAllowedCharPattern
getAllowedCharPattern, setAllowedCharPatternMethods inherited from interface com.vaadin.flow.component.textfield.HasAutocapitalize
getAutocapitalize, setAutocapitalizeMethods inherited from interface com.vaadin.flow.component.textfield.HasAutocomplete
getAutocomplete, setAutocompleteMethods inherited from interface com.vaadin.flow.component.textfield.HasAutocorrect
isAutocorrect, setAutocorrectMethods inherited from interface com.vaadin.flow.component.shared.HasClearButton
isClearButtonVisible, setClearButtonVisibleMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabledMethods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperTextMethods inherited from interface com.vaadin.flow.component.HasLabel
getLabelMethods inherited from interface com.vaadin.flow.component.HasPlaceholder
getPlaceholder, setPlaceholderMethods inherited from interface com.vaadin.flow.component.shared.HasPrefix
getPrefixComponent, setPrefixComponentMethods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods inherited from interface com.vaadin.flow.component.shared.HasSuffix
getSuffixComponent, setSuffixComponentMethods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeNameMethods inherited from interface com.vaadin.flow.component.shared.HasThemeVariant
addThemeVariants, removeThemeVariants, setThemeVariant, setThemeVariants, setThemeVariantsMethods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipMarkdown, setTooltipTextMethods inherited from interface com.vaadin.flow.component.shared.HasValidationProperties
getErrorMessage, isInvalid, setInvalidMethods inherited from interface com.vaadin.flow.data.binder.HasValidator
addValidationStatusChangeListenerMethods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, clear, getOptionalValue, isEmptyMethods inherited from interface com.vaadin.flow.component.HasValueAndElement
isReadOnly, setReadOnlyMethods inherited from interface com.vaadin.flow.component.InputNotifier
addInputListenerMethods inherited from interface com.vaadin.flow.component.KeyNotifier
addKeyDownListener, addKeyDownListener, addKeyPressListener, addKeyPressListener, addKeyUpListener, addKeyUpListener
-
Constructor Details
-
TextField
public TextField()Constructs an emptyTextField. -
TextField
Constructs an emptyTextFieldwith the given label.- Parameters:
label- the text to set as the label
-
TextField
Constructs an emptyTextFieldwith the given label and placeholder text.- Parameters:
label- the text to set as the labelplaceholder- the placeholder text to set
-
TextField
Constructs aTextFieldwith the given label, an initial value and placeholder text.- Parameters:
label- the text to set as the labelinitialValue- the initial valueplaceholder- the placeholder text to set- See Also:
-
TextField
public TextField(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a value change listener.- Parameters:
listener- the value change listener- See Also:
-
TextField
public TextField(String label, com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a label and a value change listener.- Parameters:
label- the text to set as the labellistener- the value change listener- See Also:
-
TextField
public TextField(String label, String initialValue, com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField, String>> listener) Constructs an emptyTextFieldwith a label,a value change listener and an initial value.- Parameters:
label- the text to set as the labelinitialValue- the initial valuelistener- the value change listener- See Also:
-
-
Method Details
-
setErrorMessage
Distinct error messages for different constraints can be configured with the
TextField.TextFieldI18nobject, using the respective properties. However, note that the error message set withsetErrorMessage(String)will take priority and override any i18n error messages if both are set.- Specified by:
setErrorMessagein interfacecom.vaadin.flow.component.HasValidation- Specified by:
setErrorMessagein interfacecom.vaadin.flow.component.shared.HasValidationProperties
-
setRequiredIndicatorVisible
public void setRequiredIndicatorVisible(boolean required) Description copied from class:TextFieldBaseSets whether the user is required to provide a value. When required, an indicator appears next to the label and the field invalidates if the value is cleared.NOTE: The required indicator is only visible when the field has a label, see
TextFieldBase.setLabel(String).- Specified by:
setRequiredIndicatorVisiblein interfacecom.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField,String>, String> - Specified by:
setRequiredIndicatorVisiblein interfacecom.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TextField,String>, String> - Overrides:
setRequiredIndicatorVisiblein classTextFieldBase<TextField,String> - Parameters:
required-trueto make the field required,falseotherwise- See Also:
-
setMaxLength
public void setMaxLength(int maxLength) Sets the maximum number of characters (in Unicode code points) that the user can enter. Values with a length exceeding this limit will cause the component to invalidate.The maximum length is inclusive.
- Parameters:
maxLength- the maximum length- See Also:
-
getMaxLength
public int getMaxLength()Gets the maximum number of characters (in Unicode code points) that the user can enter.- Returns:
- the maximum length
- See Also:
-
setMinLength
public void setMinLength(int minLength) Sets the minimum number of characters (in Unicode code points) that the user can enter. Values with a length shorter than this limit will cause the component to invalidate.The minimum length is inclusive.
- Parameters:
minLength- the minimum length- See Also:
-
getMinLength
public int getMinLength()Gests the minimum number of characters (in Unicode code points) that the user can enter.- Returns:
- the minimum length
- See Also:
-
setPattern
Sets a regular expression for the value to pass during validation. Values that do not match the pattern will cause the component to invalidate.The pattern must be a valid JavaScript Regular Expression that matches the entire value, not just some subset.
- Parameters:
pattern- the new String pattern ornullto clear it- See Also:
-
getPattern
Gets the regular expression that the value is checked against during validation.- Returns:
- the pattern or
nullif not set - See Also:
-
getEmptyValue
-
setValue
Sets the value of this text field. If the new value is not equal togetValue(), fires a value change event. ThrowsNullPointerException, if the value is null.Note:
Binderwill take care of thenullconversion when integrates with text field, as long as no new converter is defined. -
getValue
Returns the current value of the text field. By default, the empty text field will return an empty string. -
getDefaultValidator
- Specified by:
getDefaultValidatorin interfacecom.vaadin.flow.data.binder.HasValidator<String>
-
setManualValidation
public void setManualValidation(boolean enabled) - Specified by:
setManualValidationin interfacecom.vaadin.flow.component.HasValidation
-
validate
protected void validate()Validates the current value against the constraints and sets theinvalidproperty and theerrorMessageproperty based on the result. If a custom error message is provided withsetErrorMessage(String), it is used. Otherwise, the error message defined in the i18n object is used.The method does nothing if the manual validation mode is enabled.
-
getI18n
Gets the internationalization object previously set for this component.NOTE: Updating the instance that is returned from this method will not update the component if not set again using
setI18n(TextFieldI18n)- Returns:
- the i18n object or
nullif no i18n object has been set
-
setI18n
Sets the internationalization object for this component.- Parameters:
i18n- the i18n object, notnull
-