pub struct FormField { /* private fields */ }Expand description
A named field a Form reads on submit.
The name may come from the field itself: a component whose value lives in
an entity (Input, TextArea, NumberField) writes its name prop into
that entity, so FormField::text and FormField::number can pick it up
and the call site does not repeat it.
Implementations§
Source§impl FormField
impl FormField
Sourcepub fn text(state: Entity<InputState>) -> Self
pub fn text(state: Entity<InputState>) -> Self
A single-line text field, read from its InputState.
This is the registration for an Input or
SearchField — the controls a native form
implicitly submits from, so the field carries the Enter reader. A
multi-line field rendered from the same state must register with
FormField::text_area.
Sourcepub fn text_area(state: Entity<InputState>) -> Self
pub fn text_area(state: Entity<InputState>) -> Self
A multi-line text field, read from its InputState — the state a
TextArea renders.
Identical to FormField::text except that Enter never submits the
form: a native form does not implicitly submit from a <textarea>,
whose Enter is a newline. The multiline flag lives on the
TextArea builder, not on the shared state, so
the registration is where the control kind is named.
Sourcepub fn number(state: Entity<NumberState>) -> Self
pub fn number(state: Entity<NumberState>) -> Self
A numeric field, read from its NumberState.
The field’s validity is the one NumberField::render resolved —
controlled flags, then server errors, then validate — mirrored onto
the inner InputState exactly as name is, so the submission reads
the rendered state rather than a builder snapshot. Read-only travels
the same way: NumberField forwards the flag to the inner input,
whose render mirrors it here.
Sourcepub fn code(name: impl Into<SharedString>, state: Entity<OtpState>) -> Self
pub fn code(name: impl Into<SharedString>, state: Entity<OtpState>) -> Self
An OTP field, read from its crate::input_otp::OtpState.
Pinned v3 builds InputOTP on a single text input, and the row’s
cells share one focus handle, so a focused Enter here is the same
implicit submission it is in any single-line field. The OTP answers
no Enter of its own — its handler fills cells and walks the caret —
so the keystroke bubbles to the form.
Sourcepub fn text_value(
name: impl Into<SharedString>,
value: impl Into<SharedString>,
) -> Self
pub fn text_value( name: impl Into<SharedString>, value: impl Into<SharedString>, ) -> Self
A plain text value the caller holds — a formatted date, a colour hex, an OTP code.
Sourcepub fn number_value(name: impl Into<SharedString>, value: f64) -> Self
pub fn number_value(name: impl Into<SharedString>, value: f64) -> Self
A plain number the caller holds — a slider or colour channel.
Sourcepub fn flag(name: impl Into<SharedString>, value: bool) -> Self
pub fn flag(name: impl Into<SharedString>, value: bool) -> Self
A checkbox or switch, whose value the caller holds.
Sourcepub fn keys(
name: impl Into<SharedString>,
values: impl IntoIterator<Item = impl Into<SharedString>>,
) -> Self
pub fn keys( name: impl Into<SharedString>, values: impl IntoIterator<Item = impl Into<SharedString>>, ) -> Self
A selection, whose value the caller holds.
Sourcepub fn name(self, name: impl Into<SharedString>) -> Self
pub fn name(self, name: impl Into<SharedString>) -> Self
Overrides the name, for a field that carries none of its own.
Sourcepub fn default_text(
self,
state: Entity<InputState>,
value: impl Into<SharedString>,
) -> Self
pub fn default_text( self, state: Entity<InputState>, value: impl Into<SharedString>, ) -> Self
The value a reset restores. Without one, a reset only reports itself.
Sourcepub fn default_number(self, state: Entity<NumberState>, value: f64) -> Self
pub fn default_number(self, state: Entity<NumberState>, value: f64) -> Self
The number a reset restores.
Sourcepub fn is_required(self, v: bool) -> Self
pub fn is_required(self, v: bool) -> Self
Marks the field required, which is what onInvalid reports on.
Sourcepub fn validation_behavior(self, behavior: ValidationBehavior) -> Self
pub fn validation_behavior(self, behavior: ValidationBehavior) -> Self
validationBehavior — Allow shows the field’s message without
blocking submission.
Sourcepub fn blocks_submission(&self, cx: &App) -> bool
pub fn blocks_submission(&self, cx: &App) -> bool
Whether this field’s invalidity blocks submission.
Sourcepub fn field_name(&self, cx: &App) -> Option<SharedString>
pub fn field_name(&self, cx: &App) -> Option<SharedString>
The name this field submits under: an explicit FormField::name,
otherwise the name prop the component wrote into its own state.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for FormField
impl !Send for FormField
impl !Sync for FormField
impl !UnwindSafe for FormField
impl Freeze for FormField
impl Unpin for FormField
impl UnsafeUnpin for FormField
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more