Common FormField type subclasses

This is a high level overview of available FormField subclasses. An automatically generated list is available on the SilverStripe API documentation.



  • FormAction: Button element for forms, both for <input type="submit"> and <button>.
  • ResetFormAction: Action that clears all fields on a form.

Formatted input

  • AjaxUniqueTextField: Text field that automatically checks that the value entered is unique for the given set of fields in a given set of tables.
  • ConfirmedPasswordField: Two masked input fields, checks for matching passwords.
  • CountryDropdownField: A simple extension to dropdown field, pre-configured to list countries.
  • CreditCardField: Allows input of credit card numbers via four separate form fields, including generic validation of its numeric values.
  • CurrencyField: Text field, validating its input as a currency. Limited to US-centric formats, including a hardcoded currency symbol and decimal separators. See MoneyField for a more flexible implementation.
  • DateField: Represents a date in a single input field, or separated into day, month, and year. Can optionally use a calendar popup.
  • DatetimeField: Combined date- and time field.
  • EmailField: Text input field with validation for correct email format according to RFC 2822.
  • GroupedDropdownField: Grouped dropdown, using tags.
  • HtmlEditorField: A WYSIWYG editor interface.
  • MoneyField: A form field that can save into a Money database field.
  • NumericField: Text input field with validation for numeric values.
  • OptionsetField: Set of radio buttons designed to emulate a dropdown.
  • PhoneNumberField: Field for displaying phone numbers. It separates the number, the area code and optionally the country code and extension.
  • SelectionGroup: SelectionGroup represents a number of fields which are selectable by a radio button that appears at the beginning of each item.
  • TimeField: Input field with time-specific, localised validation.


  • CompositeField: Base class for all fields that contain other fields. Uses <div> in template, but doesn't necessarily have any visible styling.
  • FieldGroup attached in CMS-context.
  • FieldList: Basic container for sequential fields, or nested fields through CompositeField.
  • TabSet: Collection of fields which is rendered as separate tabs. Can be nested.
  • Tab: A single tab inside a TabSet.
  • ToggleCompositeField: Allows visibility of a group of fields to be toggled.


  • FileField: Simple file upload dialog.
  • UploadField: File uploads through HTML5 features, including upload progress, preview and relationship management.


  • CheckboxSetField: Displays a set of checkboxes as a logical group.
  • TableField: In-place editing of tabular data.
  • TreeDropdownField: Dropdown-like field that allows you to select an item from a hierarchical AJAX-expandable tree.
  • TreeMultiselectField: Represents many-many joins using a tree selector shown in a dropdown-like element
  • GridField: Displays a SS_List in a tabular format. Versatile base class which can be configured to allow editing, sorting, etc.
  • ListboxField: Multi-line listbox field, through <select multiple>.


  • DatalessField - Base class for fields which add some HTML to the form but don't submit any data or save it to the database
  • HeaderField: Renders a simple HTML header element.
  • HiddenField - Renders a hidden input field.
  • LabelField: Simple label tag. This can be used to add extra text in your forms.
  • LiteralField: Renders arbitrary HTML into a form.

Was this article helpful?