Skip to content

TextField

KeyAction
/ Move cursor
HomeJump to start
EndJump to end
BackspaceDelete character before cursor
DeleteDelete character at cursor
Ctrl+UDelete from cursor to start of line
Ctrl+KDelete from cursor to end of line
Ctrl+WDelete word backward
EnterSubmit (fires onSubmit)
field := components.NewTextField().
SetLabel("Email").
SetValidator(validators.Email())

The validator runs on every keystroke. The field draws a red border when the current value is invalid. FieldValue() returns the raw string regardless of validation state — check IsValid() before using the value.

TextField implements FormField. The bound value type is string.

TextField preview

TextField is a single-line text input with validation. It implements ValueProvider[string].

Constructor func NewTextField(name string) *TextField

Usage

field := components.NewTextField("email").
SetLabel("Email Address").
SetPlaceholder("user@example.com")
field.SetValue("test@example.com")
fmt.Println(field.Value())

SetValidator

field := components.NewTextField("email").
SetLabel("Email").
SetValidator(func(value string) error {
return validators.Email()(value)
})
field.SetValue("invalid-email")
if err := field.Validate(); err != nil {
fmt.Println("Validation failed:", err)
}
field.SetValue("valid@example.com")
if err := field.Validate(); err == nil {
fmt.Println("Validation passed")
}

Methods

Method Signature Description
Clear func (t *TextField) Clear() Clear resets the text field to an empty value.
ClearField func (t *TextField) ClearField() ClearField resets the field to its zero value. Implements FormField.
FieldValue func (t *TextField) FieldValue() any FieldValue returns the field's current value as an any. Implements FormField.
GetError func (t *TextField) GetError() string GetError returns the current validation error.
GetFieldHeight func (t *TextField) GetFieldHeight() int GetFieldHeight returns the preferred height for this field.
GetName func (t *TextField) GetName() string GetName returns the field name.
GetValue func (t *TextField) GetValue() string GetValue returns the current value.
HasError func (t *TextField) HasError() bool HasError returns whether the field has a validation error.
HasValue func (t *TextField) HasValue() bool HasValue returns true if the text field has a non-empty value.
SetFieldValue func (t *TextField) SetFieldValue(value any) error SetFieldValue sets the field's value from an any. Implements FormField.
SetLabel func (t *TextField) SetLabel(label string) *TextField SetLabel sets the field label.
SetMaskChar func (t *TextField) SetMaskChar(char rune) *TextField SetMaskChar sets the character used for password masking. Default is '•'. Common alternatives are '*' or '●'.
SetMasked func (t *TextField) SetMasked(masked bool) *TextField SetMasked enables or disables password masking. When enabled, the displayed value will show mask characters instead of the actual text.
SetOnChange func (t *TextField) SetOnChange(handler ChangeHandler[string]) *TextField SetOnChange sets the change handler (new API).
SetOnSubmit func (t *TextField) SetOnSubmit(handler SubmitHandler) *TextField SetOnSubmit sets the submit handler (new API).
SetPlaceholder func (t *TextField) SetPlaceholder(placeholder string) *TextField SetPlaceholder sets the placeholder text.
SetValidator func (t *TextField) SetValidator(fn func(string) error) *TextField SetValidator sets the validation function.
SetValidators func (t *TextField) SetValidators(vs ...validators.Validator) *TextField SetValidators sets multiple validators for the field. Validators are run in order and the first error is returned.
SetValue func (t *TextField) SetValue(value string) *TextField SetValue sets the current value.
Validate func (t *TextField) Validate() error Validate runs validation and returns any error.
Value func (t *TextField) Value() string Value returns the current value (alias for GetValue). This method is part of the ValueProvider interface.

Types

type ChangeHandler ChangeHandler handles value changes
type SubmitHandler SubmitHandler handles submissions