Field types

All 14 field types — what each one collects, how it validates, and when to use it.


Deooch Forms has 14 field types. Thirteen collect an answer; the fourteenth, heading, is a section title that collects nothing. Each field carries a label, an optional placeholder and help text, and a required flag.

TypeShown asWhen to use it
textShort textOne line of free text — names, job titles, reference numbers.
textareaLong textA multi-line box for anything open-ended: feedback, descriptions, questions.
emailEmailValidated as an email address before the form will submit. Use this rather than a text field if you plan to reply.
phonePhoneDigits, formatted as the respondent types.
addressAddressA grouped street / city / region / postcode block instead of one free-text line.
numberNumberNumeric input only — quantities, ages, budgets.
selectDropdownOne answer from a list, collapsed. Best above roughly six options.
radioSingle choiceOne answer from a list, all options visible. Best for two to six options.
checkboxMultiple choiceAny number of answers from a list.
dateDateA native date picker — no format ambiguity between regions.
fileFile linkA URL pointing at a file the respondent already hosts.
uploadFile uploadThe respondent uploads the file itself; it is stored with the response.
signatureSignatureA drawn signature, for consent and acknowledgement forms.
headingSection headingDisplay only — collects no answer. Use it to break a long form into named sections.

Choice fields

select, radio, and checkbox take an options array of strings. radio and select both accept exactly one answer — the difference is whether the options are visible up front. Show them when there are few, collapse them when there are many.

Required fields and validation

Set required: true and the form will not submit without an answer. Type-level validation runs on top of that: email must look like an address, number rejects text, date uses a native picker. Validation runs in the browser and again on the server, so a crafted request cannot slip past it.

Requiring everything is the most common mistake. Every required field is another reason to abandon the form — mark only what you genuinely cannot act without.

Sections

A heading field renders as a section title in the flow of the form. Use them once a form covers more than one topic — Contact details, Your project, Consent. Do not open a form with a heading that repeats its title; the title already renders above the fields.

Ordering

Every field has an order number, which is what the renderer sorts on. In the studio you drag; over MCP you set it explicitly — and since update_form replaces the whole array, send fields back with their orders already correct.

Next