Version 3 end of life
This version of Silverstripe CMS will not recieve any additional bug fixes or documentation updates. Go to documentation for the most recent stable version.

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.