classafFormBean::FormField

sys::Obj
  afFormBean::FormField

Holds all the meta data required to convert a field on a Fantom object to HTML and back again.

attributes

Source

Str? attributes

HTML attribute. Any other miscellaneous attributes that should be rendered on the <input>. Example:

attributes = "autocomplete='off'"
blankLabel

Source

Str? blankLabel

Used by the <select> renderer. This is the label to display in the blank option.

leave as null to use OptionsProvider.blankLabel value.

css

Source

Str? css

HTML attribute. The value to render as a CSS class attribute on the <input>.

doHtmlValidation

Source

virtual Void doHtmlValidation()

Performs basic HTML5 validation.

errMsg

Source

Str? errMsg

The error message associated with this field.

Setting this to a non-null value invalidate the form field.

field

Source

Field field

The Fantom field this FormField represents.

formBean

Source

FormBean formBean

A link back to the owning FormBean instance.

formData

Source

Obj? formData

Used as temporary store when uploading binary data, such as Bufs and Files. Contains the value that the form field will be set to.

formValue

Source

Str? formValue

The Str value that will be rendered in the HTML form. You may set this value before the form is rendered to set a default value.

If the formValue is null then the field value is used instead and converted by valueEncoder.

This formValue is also set during form validation so any user entered values are re-rendered should the form be re-displayed.

hint

Source

Str? hint

If non-null an extra <div> is rendered after the <input> to supply a helpful hint. The hint is usually rendered with the formBean-hint CSS class.

inputSkin

Source

InputSkin? inputSkin

The InputSkin used to render the field to HTML.

If null then a default InputSkin is chosen based on the type attribute.

invalid

Source

Bool invalid

Is this form field invalid?

Setting this to false also clears any errMsg.

label

Source

Str? label

The label to display next to the <input>.

If null then it defaults to a human readable version of the field name.

make

Source

new make(Field field, FormBean formBean, |This in)

Create FormField instances via IoC:

formField := scope.build(FormField#, [field, formBean])
max

Source

Int? max

HTML5 validation attribute. Sets the maximum value (inclusive) an Int should have.

maxLength

Source

Int? maxLength

HTML5 validation attribute. Sets the maximum length (inclusive) a string should be.

min

Source

Int? min

HTML5 validation attribute. Sets the minimum value (inclusive) an Int should have.

minLength

Source

Int? minLength

HTML5 validation attribute. Sets the minimum length (inclusive) a string should be.

msg

Source

Str? msg(Str key, Obj? arg1 := null, Obj? arg2 := null, Obj? arg3 := null)

Returns a message for the given field. Messages are looked up in the following order:

  • <bean>.<field>.<key>
  • <field>.<key>
  • <key>

And the following substitutions are made:

  • ${label} -> formField.label
  • ${value} -> formField.formValue
  • ${arg1} -> arg1.toStr
  • ${arg2} -> arg2.toStr
  • ${arg3} -> arg3.toStr

The form value is substituted for ${value} because it is intended for use by validation msgs.

Returns null if a msg could not be found.

optionsProvider

Source

OptionsProvider? optionsProvider

Used by the <select> renderer. The OptionsProvider used to supply option values when rendering <select> tags.

If null then a default OptionsProvider is chosen based on the field type.

pattern

Source

Regex? pattern

HTML5 validation attribute. Sets a regular expression that the (stringified) value should match. Starting ^ and ending $ characters are implicit and not required.

placeholder

Source

Str? placeholder

HTML attribute. The value to render as a placeholder attribute on the <input>.

populate

Source

This populate()

Populates this FormField instance with values from the @HtmlInput facet (if any) and message values.

render

Source

virtual Str render(Obj? bean)

Hook to render this field to HTML. By default this defers rendering to an InputSkin.

Override to perform custom field rendering.

required

Source

Bool? required

HTML5 validation attribute. Set to true to mark the input as required. If null (the default) then the input is required if the field is non-nullable.

showBlank

Source

Bool? showBlank

Used by the <select> renderer. Set to true to show a blank value at the start of the options list.

leave as null to use OptionsProvider.showBlank value.

stash

Source

[Str:Obj?]? stash

A general stash, handy for passing data to static validate methods.

step

Source

Int? step

HTML5 validation attribute. Defines the interval for a numeric input.

toClient

Source

Str toClient(Obj? value)

Converts the given value to a string using the preferred ValueEncoder.

type

Source

Str? type

HTML attribute. The type of input to render.

If null then it defaults to text.

validate

Source

virtual Void validate()

Validates this form field. Calls doHtmlValidation() and then any static @Validate method that corresponds to this field.

@Validate methods may check invalid and errMsg to ascertain if any previous validation failed.

After validation check the value of the invalid and errMsg fields.

validationMethod

Source

Method? validationMethod

A static method that performs extra server side validation.

valueEncoder

Source

Obj? valueEncoder

The afBedSheet::ValueEncoder used to convert the field value to and from a Str.

If null then a default ValueEncoder based on the field type is chosen from BedSheet's ValueEncoders service.

viewOnly

Source

Bool? viewOnly

If true then the field is rendered into the HTML form as normal, but no attempt is made to validate the form value or decode it back to a Fantom value.

Useful for rendering static, read only, HTML associated with the field.