Hidden Field
The Hidden Field allows you to define the value of a field on your form ahead of time without displaying that field to the user. This can be useful to help prepare information that will need to be associated with a form but doesn't necessarily need to be seen or filled out by the user.
The Hidden Field does display the value that you set in the templates so an enterprising user could view the code on your page and see the value you have prepared, and if they truly desire, even modify it directly in the code on the page. If you want to predefine a value that your user will never see and can never modify, see the Invisible Field.
# Settings
# Hidden Field Value
This setting let's you predefine the value you want to see in your Hidden Field. It can parse Twig and any values provided via the addFieldVariables
template tag. See the Field Variables section below for more info.
# Allow edits
Enable this setting if you wish to allow users in the Control Panel to edit this Hidden Field value. By default, the field will display the value but not allow any edits.
# Field Variables
When using the default Form Templates, the Hidden Field has access to several common variables that are also available as Craft Global Variables. The default variables include:
- craft
- currentSite
- currentUser
- now
- siteName
- siteUrl
- systemName
These default values can be customized when using addFieldVariables
tag. To add additional variables, pass those variables to the addFieldVariables
tag in your templates before the displayForm
tag.
{% do craft.sproutForms.addFieldVariables({ 'entry': entry, 'category': category, 'hiddenEmail': '[email protected]' }) %} {{ craft.sproutForms.displayForm('application') }}
The Hidden Field Value setting is processed like a Twig Template and you can target the available variables are all made available to the field using the object
variable. The variables can be accessed using standard Twig syntax or shorthand object syntax:
{{ object.craft.app.getRequest().getAbsoluteUrl() }} {{ object.entry.title }} {{ object.entry.customField }} {{ object.entry.customField.first().id }} {{ object.hiddenEmail }}
And shorthand syntax:
{craft.app.getRequest().getAbsoluteUrl()} {entry.title} {entry.customField} {entry.customField.first().id} {hiddenEmail}