Form Field

Form Field

{{ form_field }}

Name Type Description
is_valid Boolean Will always be true
value String Synonymn for guid
classname String CSS class name(s) to be applied to the field
type String The field type (text, textarea, select, checkbox, etc...)
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
field_id String The identifier for this field
label String The label for this field
output String The default output that the form_field would produce if it were output directly to the template. The default output may change at any time. Template developers should avoid using this and should handle the output of different form fields themselves. May include additional markup in the editor preview to make it easier to edit content

{{ hidden_field }}

Should be used to output a hidden field inside a form, which by definition is not displayed to or directly editable by users.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "hidden"
field_id String The value that should be used for the name attribute of the hidden field
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
classname String CSS class name(s) to be applied to the field. Although the field is not displayed, the classname may still be used when setting the field value (eg: for the editor to specify the type of data to save in the field)
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
output String Default HTML markup for this field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more

Hidden form fields are generally only useful for template developers, since the user is not able to directly edit their value. When including a hidden field in a form, developers should ensure that there is some way for the value to be set - typically either using liquid markup to specify the value explicitly in the template or using javascript after the form is displayed to calculate and set a dynamic value

{{ checkboxlist_field }}

Should be used to display a list of checkboxes inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "checkboxlist"
items object A dictionary containing all of the checkboxes and their values to be included in the checkboxlist, where the keys are the value to be stored and the values are the text to be displayed
options String The raw and un-parsed options for the checkboxlist field
delimiter String The string that is used to distinguish one option from another in both the raw options property and the final saved value
value_delimiter String The string that should be used to distinguish the value for each option from the text to be displayed, where the value is to the left of value_delimiter and the text is to the right. Any options that do not contain the value_delimiter will use the full option as both the text and the value
count Integer The number of options in this checkboxlist
default_value String The raw and un-parsed default value for this checkboxlist field. Includes all of the values for the options that should be checked by default, separated by the delimiter
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to check at least one checkbox in this list
required_message String The message to display when the user attempts to submit the form without checking any checkboxes in this list
validators validators The list of validators that should be used to validate this form field, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this checkboxlist, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

{{ textarea_field }}

Should be used to display a textarea field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "textarea"
placeholder String The pladeholder text to display when this textarea does not have a value
default_value String The text to include in this textarea by default when the form is initially displayed
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to enter text in this textarea
required_message String The message to display when the user attempts to submit the form without entering any text in this textarea
validators validators The list of validators that should be used to validate this textarea, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this textarea field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

{{ checkbox_field }}

Should be used to display a checkbox field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "checkbox"
default_value Boolean Whether or not the checkbox should be checked by default when the form is displayed
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to "true" or "false". This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to check this checkbox before submitting the form
required_message String The message to display when the user attempts to submit the form without checking this checkbox
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

{{ file_field }}

Should be used to display a file upload field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "file"
allow_multiple Boolean Whether or not this field may be used to upload multiple files at once
accept String A string containing the types of files that may be uploaded using this field. Intended to be used directly in the "accept" property of an HTML file input element
required Boolean Will be true if the user is required to upload a file before submitting the form
required_message String The message to display when the user attempts to submit the form without uploading a file
validators validators The list of validators that should be used to validate this form field, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this file field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

There may be additional restrictions on file uploads that are not specified in the validators, such as max upload filesize. Furthermore, after being uploaded, all files are automatically scanned for malware, although that does not prevent users from uploading malicious files; it only reports the expected security status of the file to administrators

{{ group_field }}

Should be used to display a group of fields inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "group"
fields list The list of fields in the group. May include other groups as well
collapsible Boolean Whether or not the group of fields may be collapsed (partially hidden) on the page
collapsed Boolean Whether or not the group of fields should initially be collapsed (partially hidden) when the form is first displayed
element_id String A helper property containing a unique ID for this group on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the group
condition condition The condition that should be used to show and hide this group
classname String CSS class name(s) to be applied to the group
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this group and all of the fields in this group, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

Groups may be deeply nested, which templates should be able to handle. Template developers may optionally handle collapsing and expanding groups, although if possible it is recommended to allow it for optimal feature parity with the editor options when editing form fields

{{ submit_field }}

Should be used to display a submit button inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "submit"
button_value String Optional. If specified, this should be used as the value for the submit button. This is not typically used, but may be helpful in some edge cases
text_is_html Boolean If true, the template should use the button_html property when displaying the submit button. If false, the template should use the button_text property, which should be propertly escaped since it is not supposed to contain HTML markup
button_html String The html markup to display inside the submit button. Should be used if the text_is_html property is true
button_text String The plain text to display inside the submit button. Should be used if the text_is_html property is false
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for the submit button, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

Almost every form should have one and only one submit button.

{{ button_field }}

Should be used to display a custom button inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "button"
button_type String The type of button to display. Will be one of "none", "button", "reset", or "submit"
button_value String Optional. If specified, this should be used as the value for the button (eg: for submit buttons)
text_is_html Boolean If true, the template should use the button_html property when displaying the button. If false, the template should use the button_text property, which should be propertly escaped since it is not supposed to contain HTML markup
button_html String The html markup to display inside the button. Should be used if the text_is_html property is true
button_text String The plain text to display inside the button. Should be used if the text_is_html property is false
on_click String The custom javascript to execute when this button is clicked. Note that there is no guarantee that the javascript is valid or that any other functions or variables that it may reference have been defined. This functionality should only be used by developers and power users who know what they are doing
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for the button field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

The button field should only be used by power users who know what they are doing, and should always be tested to ensure that it works as anticipated. Most of the time the submit field should be used instead.

{{ select_field }}

Should be used to display a select list inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "select"
allow_multiple Boolean Whether or not to allow users to select more than one option from this select list
items object A dictionary containing all of the options and their values to be included in the select list, where the keys are the value to be stored and the values are the text to be displayed
options String The raw and un-parsed options for the select list
delimiter String The string that is used to distinguish one option from another in both the raw options property and the final saved value
value_delimiter String The string that should be used to distinguish the value for each option from the text to be displayed, where the value is to the left of value_delimiter and the text is to the right. Any options that do not contain the value_delimiter will use the full option as both the text and the value
count Integer The number of options in this select list
default_value String The raw and un-parsed default value for this select list. Includes the value of all options that should be selected by default, separated by the delimiter
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to select an option in this list
required_message String The message to display when the user attempts to submit the form without selecting an option in this list
validators validators The list of validators that should be used to validate this form field, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

{{ radio_field }}

Should be used to display a radio field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "radio"
items object A dictionary containing all of the options and their values to be included in the template, where the keys are the value to be stored and the values are the text to be displayed
options String The raw and un-parsed options for the radio field
delimiter String The string that is used to distinguish one option from another in the raw options property
value_delimiter String The string that should be used to distinguish the value for each option from the text to be displayed, where the value is to the left of value_delimiter and the text is to the right. Any options that do not contain the value_delimiter will use the full option as both the text and the value
count Integer The number of options in this radio field
default_value String The value of the radio option that should be selected by default when this form is displayed
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to select one of the radio options
required_message String The message to display when the user attempts to submit the form without selecting a radio option
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this radio field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

{{ label_field }}

Should be used to display a text label inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "label"
element_id String A helper property containing a unique ID for this label on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the label. Not typically used for label fields, although the developer may specify an alternate use for this or may customize the output using this
condition condition The condition that should be used to show and hide this label
classname String CSS class name(s) to be applied to the label
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this label, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

How the label is displayed in the form is entirely up to the template developer as there is currently no way for editors to specify the styling to use when displaying labels

{{ captcha_field }}

Should be used to display a captcha inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "captcha"
theme String "light" or "dark"
captcha_size String "compact" or "normal"
google_recaptcha_site_key String The public Google ReCaptcha site key, which is required for the captcha to work
required Boolean Will always be true
required_message String The message to display when the user attempts to submit the form without passing the catpcha
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for the captcha field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

Captcha fields are recommended in order to prevent bots from spamming forms, although each form may only have a single catpcha field. Additionally, it is not recommended for the captcha field to be conditional, as that would defeat its purpose.

{{ text_field }}

Should be used to display a text field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "text"
is_numeric Boolean Will be true if the field should only be used to enter numbers, which may only include integers or may include decimals as well. This is a convenience property which uses the validators to check if the field validates for numeric or decimal values
placeholder String The pladeholder text to display when this field does not have a value
default_value String The text to include in this field by default when the form is initially displayed
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to enter text in this field
required_message String The message to display when the user attempts to submit the form without entering any text in this field
validators validators The list of validators that should be used to validate this text field, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content

The text field may also be used to display number inputs, although there are not number-specific properties (eg: increment) so it is currently up to the template developer's discretion how they want to display number inputs

{{ date_field }}

Should be used to display a date field inside a form.

Name Type Description
is_valid Boolean Will always be true
type String Will always be "date"
default_value time Optional. The default value to use for this date field when the form is displayed. Will be null if there is no default value
map_to_attribute String If the user is signed into a profile when they submit this form and map_to_attribute is set, the profile attribute specified in map_to_attribute will be set to the value of this field. This should also be used to override the default value if the user is signed into a profile and the specified attribute has already been set
required Boolean Will be true if the user is required to enter a date before submitting the form
required_message String The message to display when the user attempts to submit the form without entering a date
validators validators The list of validators that should be used to validate this date field, if applicable
element_id String A helper property containing a unique ID for this field on this instance of this form. This value should be different every time the form is output
subtext text Help or hint text to display together with the field
condition condition The condition that should be used to show and hide this form field
classname String CSS class name(s) to be applied to the field
field_id String The identifier for this field
label String The label for this field
output String Default HTML markup for this date field, which makes a number of assumptions about other elements on the page that may or may not be included. Developers should avoid using the default output in order to guarantee that forms work as expected, including styling, validation, conditionals, and more. May include additional markup in the editor preview to make it easier to edit content