Skip to main content

Fieldtypes

A fieldtype is a kind of field you can add to a form — a text box, a dropdown, a file upload, a signature pad. It decides three things: what the field looks like on your site, what settings you're offered when you configure it, and what happens to the answer when someone submits.

Formidable ships with twenty-one, sorted into four groups. The groups are what you see when you click Add Field, and they're more than a filing system — fields in a group share behaviour, so a Select and a set of Checkboxes handle their choices the same way even though they look nothing alike.

Every field shares a common core

Whatever its type, every field has a name, a handle (used in your templates and in submission data), optional instructions, and a Conditions tab for showing or hiding it based on other answers. Most also offer an Attributes tab for HTML attributes and a Rules tab for validation. The sections below only describe what's particular to each type.

At a glance

GroupFieldtypes
InputsText, Email, Number, Telephone, URL, Password, Dates & Times, Color, Range, Hidden, Textarea, File
OptionsCheckboxes, Select, Radio Buttons
ButtonsSubmit, Reset
SpecialHTML, Captcha, Turnstile, Signature

Inputs

Single-value fields that render as one native HTML control. This is the group you'll reach for most: someone types or picks a value, and that value is stored against the submission.

All of them offer a default value, an Attributes tab and a Rules tab.

Text

The general-purpose single-line field. Reach for it when nothing more specific fits.

Particular settings: none beyond the common core. Can be encrypted: yes.

Email

A single-line field that renders as <input type="email">, so browsers and phone keyboards treat it as an address.

Pair it with the email rule on the Rules tab — the input type alone is a convenience, not a guarantee, and only the rule actually rejects a bad address on submission.

Can be encrypted: yes.

Number

A numeric field. Its answer is stored as a decimal number rather than text, so it sorts and compares correctly in exports and conditions.

Useful rules: greaterOrEqualThan, lessOrEqualThan, numeric.

Telephone

A phone-number field, rendered as <input type="tel"> so mobile browsers show a dialling keypad. Stored as text, because phone numbers aren't really numbers — leading zeros, spaces and + all matter.

Can be encrypted: yes.

URL

A web-address field. As with Email, add the url rule if the value genuinely has to be a valid address.

Password

A masked single-line field.

Masking is not protection

The mask only hides the value on screen. If the answer is genuinely sensitive, turn on Encrypt as well — that's what protects it at rest. Encryption can only be set when the field is first created.

Can be encrypted: yes.

Dates & Times

A date or time field. This one has an extra setting the other inputs don't:

Input type — choose how the browser presents it:

OptionPicks
datea calendar date
timea time of day
datetime-localboth together
montha month and year
weeka week number and year

Color

A colour picker, stored as a hex value.

Useful rule: hexColor.

Range

A slider. Like Number, its answer is stored as a decimal number.

Set the slider's bounds and step on the Attributes tab using min, max and step — without them a browser defaults to 0–100, which is rarely what you want.

Hidden

Carries a value the visitor never sees or edits — a campaign tag, a source label, a value from the URL.

Because there's nothing to see, this field shows no label, no instructions and no required marker in the form.

Hidden does not mean trusted

A hidden field is still an ordinary input in the page, and anyone can change it before submitting. Never use one for anything a visitor shouldn't be able to alter.

Textarea

A multi-line text field, for longer answers.

Can be encrypted: yes.

File

An upload field. This one has its own File tab:

SettingWhat it does
Upload destinationWhich of ExpressionEngine's upload directories files land in
SubfolderAn optional folder within that destination
Accepted typesWhich kinds of file to allow, chosen from plain-language categories
Maximum sizeIn kilobytes. Leave at 0 to inherit the destination's own limit
Allow multipleWhether one field can accept several files

Leaving Accepted types and Maximum size empty is deliberate and usually right: the field then follows whatever the upload destination is already configured to allow, so you set those rules once in Files rather than repeating them on every form.

Uploaded files become real entries in ExpressionEngine's file manager, and the submission stores a reference to them.

Local destinations only

Files can currently be uploaded only to destinations stored on your own server. Cloud-backed destinations aren't supported for uploads yet.


Options

Fields whose answer comes from a fixed set of choices you configure. All three share a single Options tab — the difference between them is presentation, not behaviour.

Where the choices come from

The Options tab lets you draw the list from any of:

  • Manual — type the choices yourself
  • List — reuse a named list from the Registry, so several forms can share one set of choices and you update it in one place
  • Channel entries, Categories, Members, Roles — build the list from content already on your site, so it stays current without anyone maintaining it

For each source you choose which value is stored and which label is shown.

Answers are checked against the list

When you enter choices manually, Formidable rejects any submitted value that isn't one of them — so a tampered form can't smuggle in an answer you never offered. Dynamic sources aren't checked this way, since their contents can legitimately change between rendering the form and submitting it.

Checkboxes

A group of checkboxes. The only fieldtype that accepts more than one answer, so its value is stored as a list rather than a single value.

Worth knowing when you build reports or conditions: a Checkboxes answer is always a list, even when only one box was ticked.

Select

A dropdown. One answer.

Radio Buttons

A set of radio buttons. One answer — the same as Select, shown as a visible list rather than a dropdown. Choose it when the options are few and you want them all on screen at once.


Buttons

Controls that act on the form rather than collect an answer. They store nothing, and they're skipped entirely when a submission is processed.

Because a button has no value, it shows no label, no instructions and no required marker, and it has no Rules tab. Its name is the text on the button.

Submit

Sends the form.

Reset

Clears the form back to its starting state. Standard browser behaviour — no confirmation, and it can't be undone.


Special

Fields that don't fit the ordinary pattern. Their visible part is generated at render time rather than described as a simple input, and most of them store nothing at all.

HTML

Not a field so much as a block of content in the middle of your form — a heading, an explanatory paragraph, a divider, a link to your privacy policy.

Its one setting is a Content box holding the markup to output. Nothing is collected, validated or stored, and it has no Attributes or Rules tab.

The content is output as written

Whatever you enter is placed on the page as-is, including any HTML or scripts. Only give this field to people you'd trust to edit a template.

Captcha

A challenge that asks a visitor to prove they're human, using ExpressionEngine's own CAPTCHA settings rather than a separate configuration of its own.

That means it follows whatever you've set under Settings → CAPTCHA — the classic word-and-image challenge, or reCAPTCHA if you've configured it — and it respects your rule about exempting logged-in members. If CAPTCHA is switched off site-wide, the field renders nothing.

There is nothing to configure on the field itself, which is what its settings tab tells you. Nothing is ever stored: the answer is checked during submission and discarded.

Turnstile

Cloudflare's alternative to a CAPTCHA — usually invisible to the visitor.

Unlike Captcha, this one needs credentials, which live in a Connection (under Configuration → Connections) rather than on the field. Its one setting picks which Connection to use, so a site can run different Turnstile widgets on different forms, or separate staging and production keys.

Configure the Connection first

A Turnstile field with no Connection selected rejects every submission. If you're setting one up, create the Connection before you add the field.

Nothing is stored. As with Captcha, the check happens during submission.

Signature

A pad the visitor signs with a mouse, trackpad or finger.

Its settings tab has two halves. The first controls how the pad looks and behaves:

SettingDefault
Width100%
Maximum widthnone
Height200
Pen colour#000000
Background colour#ffffff
Minimum / maximum pen width0.5 / 2.5
Borderon
Placeholder textnone
Undo buttonoff

The second controls what happens to the signature:

SettingWhat it does
Storage modebase64 keeps the image inside the submission; file writes it to an upload destination
DestinationWhich upload directory, when storage mode is file
Maximum sizeIn kilobytes. 0 for no limit
Record metadataAlso store the image's dimensions, type and a timestamp
Record metadata changes the stored shape

With it off, the field stores a single value like every other field. With it on, it stores a small bundle of details instead — which means anything expecting a plain value, such as pre-filling the field from a previous submission, will no longer find one. Leave it off unless you specifically need the extra detail.

Signing requires JavaScript. Visitors without it see a short message in place of the pad rather than a broken control.


Which fields store an answer

Useful when you're building exports, conditions or workflows.

FieldtypeStored asNotes
Text, Telephone, URL, Password, Textarea, Color, Dates & TimesText
Number, RangeDecimal number
CheckboxesListAlways a list, even with one answer
Select, Radio ButtonsText
FileFile referenceA list of references when Allow multiple is on
SignatureImage, or a bundleDepends on Record metadata
Submit, Reset, HTMLnothing
Captcha, TurnstilenothingChecked on submission, never kept

Which fields can be encrypted

Text, Email, Telephone, Password and Textarea.

Encryption is set when the field is first created and can't be switched on afterwards — an existing field's stored answers would already be in the clear, and turning the setting on later would give a false impression that they weren't.