Form Structure & Layout

The Wolfram Language provides rich options for structuring and laying out single-page and multi-page forms.

Overall Structure

(RefLink[FormFunction, paclet:ref/FormFunction]) — submittable form

(RefLink[FormPage, paclet:ref/FormPage]) — page containing both a form and result

(RefLink[FormObject, paclet:ref/FormObject]) — symbolic specification of form structure

Field Properties

name->type — field with a specified name and interpreter type

name->type->val — field with default value val

{name,label}->… — field with specified label

name-><|…|> — detailed field specifications

"Control" — type of control to provide ((RefLink[Slider, paclet:ref/Slider]), (RefLink[PopupMenu, paclet:ref/PopupMenu]), ...)

(RefLink[AutoSubmitting, paclet:ref/AutoSubmitting]) — automatically submit the whole form when entered

Form Appearance & Annotation

(RefLink[PageTheme, paclet:ref/PageTheme]) — overall visual theme (e.g. "Black", "Red", "Blue", ...)

(RefLink[AppearanceRules, paclet:ref/AppearanceRules]) — detailed form appearance specifications

"ItemLayout" — layout for field labels etc. ("Vertical", "Inline", ...)

(RefLink[Style, paclet:ref/Style]), "string", (RefLink[Image, paclet:ref/Image]), ... — items to insert verbatim in the form

(RefLink[Delimiter, paclet:ref/Delimiter]) — horizontal delimiter between fields

(RefLink[FormLayoutFunction, paclet:ref/FormLayoutFunction]) — specify the whole layout, including with HTML templates

Deployment Options

(RefLink[ImageFormattingWidth, paclet:ref/ImageFormattingWidth]) — width at which to wrap the deployed form

Forms with Dynamic Structure

(RefLink[RepeatingElement, paclet:ref/RepeatingElement]) — a sequence of identical fields or blocks, with the ability to add more

(RefLink[CompoundElement, paclet:ref/CompoundElement]) — a block of fields inside a (RefLink[RepeatingElement, paclet:ref/RepeatingElement])

Fields Depending on Others

(RefLink[TemplateSlot, paclet:ref/TemplateSlot]) — refer to an existing value when specifying properties of a field

Multi-Page Forms

{obj,(Subscript[f, 1]),(Subscript[f, 2]),…} — functions (Subscript[f, i]) generate specifications of later pages