This website works better with JavaScript
v3.0.9
09/19/2019
[](#improved)
Removed jQuery dependency for the reCaptcha field and VanillaJS-ified it instead
Updated to ReCaptcha library version 1.2.3
[](#bugfix)
Fixed Badly encoded JSON data
warning when uploading files grav#2663
v3.0.8
08/14/2019
[](#improved)
Change form save action location to user-data://
stream #353
Updated eu
, fr
and pl
language
Make Form::initialize()
chainable
Added folder
option to save:
action with fallback
[](#bugfix)
Fixed Submit & Redirect not working as expected #355
Fixed oversensitive refresh prevention #354
Fixed issue with Form JS when pipeline is enabled grav#2592
Fixed accept
for SVG in file field #364
Fixed issue with plugin not returning expected form #309
Fixed form message not showing up after reset process
Fixed form fields inside a single tab not using value from the form object if it is available
Fixed file form field failing resolution checks in certain circumstances
v3.0.7
07/01/2019
[](#bugfix)
Fixed file upload when $grav['user']
is not set #352
Fixed label markdown being escaped #356
v3.0.6
06/24/2019
[](#bugfix)
Fixed regression breaking forms external to the page in some sites
Fixed regression with form action in sub-path folders
v3.0.5
06/21/2019
[](#new)
Added support for form state saving with dynamic unique id appended to the URL
[](#improved)
Avoid creating form state if there is no data to be saved
[](#bugfix)
Fixed missing check for maximum allowed files in files
field
Fixed unique form ids getting cached, they should change on every page reload
v3.0.4
06/14/2019
[](#improved)
Captcha field: fail silently and display error in console if site_key was not defined
Support inline-errors, prepend, append in textarea
[](#bugfix)
Use less-strict comparison when checking version 3 #344
v3.0.3
05/09/2019
[](#new)
Added Text field.copy-to-clipboard
which can be used by admin plugin
[](#bugfix)
Fixed Flex route issue in list page
Fix flex-height of signature field
Fix for broken field.recaptcha_site_key
#344
Fix for checkbox data lang string #343
Fix for duplicate inline error messages #337
Fixed bad folder permissions when creating folder for file uploads
v3.0.2
04/22/2019
[](#new)
Support for Google Recaptcha theme (light/dark) doesn't work in v3 yet.
[](#improved)
Visual upgrade for form field descriptions #335
[](#bugfix)
Fixed issue with recaptcha_not_validated
property not being used
v3.0.1
04/15/2019
[](#new)
Added support for form task in blueprint
[](#bugfix)
Fix url field output in list view
v3.0.0
04/11/2019
[](#new)
Allow streams in file
field widget #119
Use new unified |t
translate filter in all fields
Google reCAPTCHA v3 support added
Google reCAPTCHA v2 Invisible support added
Added mutliple forms with reCAPTCHA support
Form no longer extends Grav\Common\Iterator
(may have some backward compatibility issues with plugins, likely not)
Form now uses NestedArrayAccessWithGetters
(with '/' separator) and FormTrait
traits
Added view
, key
, ignore
, section
, toggle
, tabs
and tab
form fields
Added support for toggleable
inputs, which can be disabled/enabled by user
Added $grav['forms']
to allow plugins to better use forms #307
Added support for custom form types
Forms can now remember their state after page reload with YAML datasets: store-state: true
set in the fields
Added clear-state
AJAX task
Added task to clear form flash
Added support for file-upload and file-remove tasks
Added ability to set a custom clear_redirect_url
on a form
Added Form::setMessage()
method
Added new form field templates for edit list table
Requires Grav 1.6.0-beta.7 (and optionally Admin 1.9.0-beta.7)
Backwards incompatibility: Do not allow static Form::getNonce()
call, only $form->getNonce()
works now
Backwards incompatibility: All form field twig files are required to extend field.html.twig
to work properly
Allow using custom nonce field/action by setting nonce.name
and nonce.action
inside the form YAML
Added html: true
support for form buttons (will not escape the button value)
Added toggle
, tabs
and tab
form fields
Added support for toggleable inputs, which can be disabled/enabled by user
Added proper support for hiding form fields in blueprints by using dynamic property like security@: admin.foobar
to any field
[](#improved)
Make fields formname
, uniqueid
and honeypot
non-inputs in form validation
Update all Form classes to rely on PageInterface
instead of Page
class
Removed media.upload_limit
references
Added field type hidden
to ip
and timestamp
actions
Improved the hidden
field logic to support value
or default
set
Set the message globally on messages
object when using a redirect in form
Improved logic for finding the current form
Added support for data-sets in textarea
and select
fields
Simplify shouldProcessForm()
logic
Do not cache flat forms list, regenerate it instead
Fixed some inconsistencies on how blueprints are handled
Improved uploads handling, added new upload: true|false
process
Make Form
implement FormInterface
Added field.size
in array
, select
, and textarea
Enable forms in admin plugin
Removed submit of unchecked fields in frontend
Make sure that the images in the file field are not cached in browser
Updated code to use PHP 7.1 features
Added some extra blocks to file
field to make it more extensible
Added field.classes
to form field to allow customization
Used Google reCAPTCHA API all token validation
Better filename and mime type handling
Now using the new core Grav language prefix
Make all form fields to extend field.html.twig
[](#bugfix)
Fixed old way to access form name
Fixed minor bugs
Fixed null date/time in list view
Fixed forms not being cached properly
Fixed issue with selectize
, automatically selecting an unintended value
Throw exception if you try to add
to a file and don't provide filename
#324
Fixed file field saving with nested name
Fixed file saving if destination folder does not exist
Fixed FormFlash object not getting deleted on form post
Regression: Fixed ignored form action #318
Regression: Fixed modular form submit not triggering the action sometimes
Fixed modular form submits without defined action: /path
inside the form
Fixed form processing in nested modular pages
Fixed container fields breaking values from the child fields
Fixed form fields not accepting object values
Fixed some form fields having no value for nested field sets
Fixed double escaping of file
type input JSON value
Fixed double locking of file when calling processor save
Fixed some missing backwards compatibility
Fixed some issues with flashed form
Fixed Twig 2 compatibility issue
Fixed files uploading before captcha check
Fixed files uploading before data has been stored
Fixed some issues with reCAPTCHA v3
Fixed error responses when file actions fail in the form
Pass unique_id when uploading files if available
v2.16.4
12/14/2018
[](#improved)
Better handling of invalid file names during upload
Better MIME type checking of files during file upload
Do not rely on jQuery for merging languages from form fields #290 #291
[](#bugfix)
Remove jQuery dependency in form.html.twig (#290 )
[](#new)
Added Object.assign-polyfill (#291 )
v2.16.3
09/21/2018
[](#improved)
Use Url:post()
to get the $_POST
variable (allows common security checks/filtering for the POST data)
Various JS tweaks and enhancements
[](#bugfix)
Fixed issue where select
set up as multiple
and with selectize: create: true
would not properly merge newly created values on rendering.
v2.16.2
08/23/2018
[](#improved)
Switched to new Grav Yaml
class to support Native + Fallback YAML libraries
Simple styling fixes for array
field
[](#bugfix)
Fixed issue with translations of placeholder text in array
field
v2.16.1
08/20/2018
[](#new)
Fixed a regression issue with file
& array
field
v2.16.0
08/20/2018
[](#new)
Added new form.keep_alive
option to keep session alive #275
Added array
field for frontend use
[](#improved)
Improving compatibility autocomplete
spec #274
v2.15.1
06/20/2018
[](#improved)
Including EXIF JS library in the modules dependencies to fix orientation when uploading images
[](#bugfix)
Fix HTML data template for checkboxes fields where 'use' property is "keys" #258
v2.15.0
05/31/2018
[](#new)
Added support for Uri::post()
Added support for autocapitalize
, inputmode
, and spellcheck
options in field definitions
v2.14.1
05/15/2018
[](#bugfix)
v2.14.0
05/11/2018
[](#new)
Make pagemedia
field available outside of pages context
Added option on fields to disable displaying of label (display_label: false
)
Moved Dropzone HTML into an overridable Twig template
Added support for image upload delete in Dropzone file
field
[](#improved)
Added support for optgroup
within select field
Save forms only once (stops extra work being done)
Allow file field to pass dropzone options
Added datasets support to fields
Added field.classes
support to display field
[](#bugfix)
Removed overridden class in password
field
Worked around forms being lost if form cache expired before page cache, see #240
Fixed default form in dynamically created page if header uses forms
instead of old form
field
Escape placeholder text in default field
v2.13.3
04/13/2018
[](#new)
Added support to save form data in raw format (yaml or json)
Added new timestamp
action to add a timestamp field
v2.13.2
04/12/2018
[](#new)
Added event onFormPrepareValidation
to allow some pre-processing before form validation
Added new postfix
and dateraw
options to "Save" action
[](#improved)
Added support for nest_id
boolean flag to fieldset
field to nest sub-fields with name of fieldset
Added classes attribute to spacer
field
[](#bugfix)
Fixed Form::setFields()
causing validation to fail on added and removed fields
v2.13.1
03/21/2018
[](#improved)
CAPTCHA fallback to cURL
if Fopen
is not allowed #224
Use visibility:hidden
rather than display:none
for honeypot field #235
Added support for markdown in checkbox field #233
Added option to control inline_css: true|false
for fields such as honeypot
Added class and CSS for honeypot field
v2.13.0
03/09/2018
[](#new)
Forced registration of Form
page template for admin
Implemented support for resolution
setting for images in file field
Implemented support for resizeWidth
, resizeHeight
, resizeQuality
and updated Dropzone to latest version
Added a new signature
field
[](#improved)
Force an onPageProcessed()
event if page cache expires before form cache #240
[](#bugfix)
Fixed an issue where unlimited size 0
was not being set properly in File field
field.description
now translated and displays properly
v2.12.0
02/22/2018
[](#new)
Added toggle to enable/disable client-side HTML5 validation
Added toggle to enable/disable inline-error messages
[](#improved)
Reformatted form.php
plugin class for better readability
[](#bugfix)
Fixed an issue with in-content Twig forms not working because forms were not initialized yet
v2.11.5
02/16/2018
[](#new)
Added support for form: process: - call: ['Class', 'method']
for custom form handling
[](#bugfix)
Fixed regression in v2.11.4: Call to a member function post() on null grav#1720
v2.11.4
02/15/2018
[](#improved)
Stopped Chrome from auto-completing admin user profile form grav#1847
Start using composer to autoload classes
Added support for switch
to be treated as checkbox
[](#bugfix)
Fixed missing form submit in dynamically created pages
v2.11.3
01/31/2018
[](#new)
Added support for file
in Display field. Allows the ability to read a file and output it, works in combination with |markdown
filter
Added minlength
and maxlength
to Textarea field #231
v2.11.2
01/22/2018
[](#new)
Added support for markdown in all form fields for label
, help
, and description
when markdown: true
is set on field
v2.11.1
12/18/2017
[](#improved)
Updated default fields to make them more consistent with class names
v2.11.0
12/05/2017
[](#new)
Added ability to set novalidate: true
on form definition to turn off all HTML5 form validation
[](#improved)
Improved logic to handle dynamically added forms to be more reliable
Added Dutch Translation #207
Improved both HTML and JSON error output by utilizing form.status
Code Cleanup
[](#bugfix)
Fix AJAX response message and wrong status #211
Escaped YAML to form save action to prevent parsing errors #206
Fixed RU translations #204
Fixed nonce check fail not setting status to error
#213
Fixed validation fail not setting status to error
#209
Catch ValidationException to avoid potential fatal error
Fixed regression issue on reset fields
Removed required
attribute in individual checkboxes as it forces all to be checked
Security fix to ensure file uploads are not manipulated mid-post - thnx @FLH !
v2.10.0
10/26/2017
[](#new)
Added ability to 'remember' field values in cookie between submissions #200
[](#improved)
Added back improved filesize
option that falls back to PHP file upload limits by default #202
Added missing file upload options into blueprints and language files
Added the ability for a form to have an http_response_code
and use it for form-messages.html.twig
(requires Grav v1.3.6+)
v2.9.3
10/11/2017
[](#improved)
Removed filesize
plugin configuration in favor of system.media.upload_limit
Consolidated field.classes
and field.wrapper_classes
in radio/checkbox/checkboxes #193
Remove trailing slash from form action #195
Improved honeypot
validation check #198
v2.9.2
09/30/2017
[](#improved)
Improved Polish translation
[](#bugfix)
Added missing @input: false
attributes to some non-display fields #189
v2.9.1
09/14/2017
[](#bugfix)
Fixed backwards compatibility issue with conditional field #188
v2.9.0
09/07/2017
[](#new)
Added Refresh Prevention capabilities (Not enabled by default) #184
Added support for field attributes
#176
Added global variables for setting form classes
Added support for new select_optgroup
form field #165
[](#improved)
Moved messages output into partial to allow style overriding
Logic cleanup
Updated Italian and Russian translations
[](#bugfix)
Fixed an issue with conditional field not always displaying properly
Only add Twig form variable if not already set
Fixed issue with multiple forms on a page failing on Captcha client-side validation #182
Fixed issue with Ajax forms return full form HTML on error #163
v2.8.2
08/18/2017
[](#new)
Added new columns
and column
fields for controlled form layout
v2.8.1
08/15/2017
[](#improved)
Added extra class support to the default field for more flexible styling
v2.8.0
07/16/2017
[](#bugfix)
Fixed a typo in the spanish translation #167
v2.8.0-rc.2
06/22/2017
[](#improved)
Add default client-side validation for captcha, with error popup #139
Added key observe for select
Added Czech translation
[](#bugfix)
Bug fix for radio type form field #154
Remove double escaping #155
v2.8.0-rc.1
05/22/2017
[](#new)
Bundled as RC release for Grav/Admin RC releases
v2.7.1
05/22/2017
[](#improved)
Force modular sub-pages with forms to set $never_cache_twig = true
to improve form processing reliability #153
Use new Utils::getPagePathFromToken()
method
v2.7.0
05/16/2017
[](#bugfix)
Fix issue with dynamically added forms (Registration, Profile, Comments, etc) not processed #149
Fixed issue with nested values not being repopulated on form error #140
v2.6.0
05/04/2017
[](#new)
Allow form item replacement in redirect location #144
[](#bugfix)
Fix regression with file uploads introduced in 2.5.0
v2.5.0
04/24/2017
[](#new)
Support proper form handling with nested fields #141
[](#bugfix)
Added check for valid Grav forms before trying to create a form object
v2.4.0
04/19/2017
[](#new)
Added the ability for front-end forms to use advanced blueprint features such as data-*@
and config-*@
Added support for dynamically added pages to process forms properly
Added a new avatar field for displaying account avatar
Added method to get all data
from a form
Support task
in button types
[](#improved)
Added step
to range field #136
Added a new default ajax handler twig template
Moved twig events to always process even if forms are not defined
Some code cleanup
Handle null
with session-based form
Added support for append/prepend to number field
[](#bugfix)
Always process form events as long as a $_POST
exists login #101
Various fixes for file
field
Allow manually added pages to process forms and upload files
Fixed issue with nested fileds not showing up in data.*.twig
templates
v2.3.1
03/23/2017
[](#bugfix)
Only include outerclasses
DIV if defined #135
v2.3.0
03/17/2017
[](#new)
Ability to process any form on any page via action:
. Super useful if you want to handle form processing on some other non-form page (or Ajax)
Added the ability for the form to set the template:
to use to render the form processing response.
[](#bugfix)
Fix number
field so it works with min value 0
#130
v2.2.0
03/13/2017
[](#new)
Added new fieldset
form field #125
Added new conditional form field
to show fields only if some condition
is set
[](#improved)
Added the option to have outer-classes on buttons #124
Added the option to disable fields label if not defined #126
v2.1.1
02/17/2017
[](#improved)
Better default output for select, checkbox and checkboxes fields in the form destination page and in the emails sent via form submit #121
v2.1.0
02/10/2017
[](#improved)
Reworked logic so form caching is based on Pages::getPagesCacheId()
Added url
option for button field
[](#bugfix)
Fixed issue with honeypot
field not throwing exception properly
v2.0.10
02/08/2017
[](#improved)
Optimistically set 'status' to success
when requesting a form via Ajax. Form processing listeners should take care of setting status to something else
[](#bugfix)
File uploads are now adding a __form-file-uploader__
POST field to better allow identifying them with Ajax
Require jQuery when using the File field, as it's needed by the form.min.js file required in the file upload functionality
v2.0.9
01/24/2017
[](#bugfix)
v2.0.8
12/13/2016
[](#new)
RC released as stable
Added a new honeypot
field for form anti-spam protection
v2.0.8-rc.1
11/26/2016
[](#bugfix)
Fixed Forms 2.0 changes for registration form #101
Fixed errant reference to Grav DI container in Form#getPagePathFromToken #105
Fixed issue with spacer fields being displayed first, not in order #104
v2.0.7
11/17/2016
[](#improved)
Added method to set all data in a form
Added params to form action URL
Added ability to add ids to buttons and to set them disabled
[](#bugfix)
Moved Files Upload GC logic to function in front-end only
v2.0.6
10/19/2016
[](#bugfix)
Fixed translations for display
field
Fixed #95 multilanguage forms submission
Fixed duplicate textarea class tag #98
v2.0.5
09/15/2016
[](#bugfix)
Fix passing updating the header through event, no need for return value
v2.0.4
09/15/2016
[](#improved)
Allow filling the page header form dynamically (e.g. use case: Comments plugin)
v2.0.3
09/12/2016
[](#improved)
Use Page::slug()
for form name if not set in the form itself (better backwards compatibility)
v2.0.2
09/08/2016
[](#improved)
Added support for Grav's autoescape twig setting
Allow to add additional markup fields in form and field twig overrides
Updated the french language translation
v2.0.1
09/07/2016
[](#bugfix)
Fixed a backwards compatibility issue with Admin forms
v2.0.0
09/07/2016
[](#new)
Forms now supports multiple forms per page!
Access forms from any other page within the current page
Instantiate forms directly in page content with Twig processing enabled
New Twig function to get forms data from any other page
Ability to use Twig in saved filename
Reworked the file
field. All files get uploaded via Ajax and are stored upon Submit. Fully backward compatible, file
field now includes also a limit
and filesize
option. The former determines how many files are allowed to be uploaded when in combination with multiple: true
(default: 10), the latter determines the file size limit (in MB) allowed for each file (default: 5MB)
[](#improved)
Added several missing HTML5 form input field types #87
Added Support for CSS id in form definition
v1.3.2
08/10/2016
[](#improved)
Added Romanian translation
[](#bugfix)
Fixed an issue with Recaptcha secret throwing errors #84
v1.3.1
07/27/2016
[](#improved)
Added support for multiple emails in email
field (add multiple: true
to enable)
[](#bugfix)
Fixed backward incompatibility with forms submission and data retrieval getgrav/grav#933
v1.3.0
07/14/2016
[](#improved)
When uploading a file through a form, if the file is already existing prepend the current day and time to the filename instead of overwriting it.
v1.3.0-rc.4
06/21/2016
[](#bugfix)
Fixed running on Grav 1.0.x
v1.3.0-rc.3
06/17/2016
[](#new)
Set hints for checkboxes options and allow field descriptions
v1.3.0-rc.2
06/08/2016
[](#new)
Allow to process Twig in a hidden field, by setting evaluate: true
v1.3.0-rc.1
06/01/2016
[](#improved)
v1.3.0-beta.6
05/23/2016
[](#new)
Added support for advanced blueprint functionality in forms
Added site-wide form options to set Google Captcha site + secret keys #34
Session-based 'flash' storage of form for redirects #48
Added ability to append to file if you include a process: save: body:
template attribute #65
[](#improved)
Support keyname
form format like admin forms
Added backwards compatibility for Captcha field
Added 'markdown-notices' style output for better errors
Added Forms::getValue()
method to retrieve values programatically
Changed datetime
form field to simply extend text
until implemented
Updated french language
[](#bugfix)
Refactored the files upload logic
Missing Language string
Fixed errors not getting output
v1.3.0-beta.5
05/12/2016
[](#improved)
Moved form/field.html.twig file to the default folder, to be more easily extended in themes
v1.3.0-beta.4
05/04/2016
[](#new)
Added support for prepend
and append
field attributes for Text input
v1.3.0-beta.3
05/03/2016
[](#bugfix)
Fix for select field admin translation
v1.3.0-beta.2
04/27/2016
[](#bugfix)
Fix for autoescape in spacer and display form fields
Fix issue with form reset action #66
v1.3.0-beta.1
04/20/2016
[](#new)
Added the HTML5 range
input field with min
and max
parameters
[](#improved)
Allow to override classes in Form definition for the form element
Add more blocks in the Form twig template, so classes can be overridden more easily in themes
Reworked some fields to fit the new Admin
Use scope
for form fields to allow fields to be excluded from the data by adding input@: false
to their definition
Added german translation
Allow to add inline Twig to the form message definition
[](#bugfix)
Fixed the form action URL for home page forms
Fix stopping form events propagation, correctly stop when one event is stopped
Allow to translate the fields placeholders and the form message
Fix captcha javascript function ordering. Also, render it in the site active language
Support attribute for="id"
on label for checkbox
Fix select fields with the multiple option enabled
Fixed select options escaping with autoescape on - #502
v1.2.2
02/11/2016
[](#bugfix)
Fixed case issue when including form file.
v1.2.1
02/11/2016
[](#new)
Allow placeholder for select field
[](#improved)
Use common language strings in blueprints
Use for
attribute in labels
Improved README.md
Code lint
[](#bugfix)
Moved nl2br
to correct place or will break for arrays
v1.2.0
01/06/2016
[](#bugfix)
Correctly merge the file field configuration
restore full file information save
v1.1.0
12/18/2015
[](#new)
Croatian translation
Added id, style, and disabled options to select fields
[](#improved)
Allow adding form labels and help text as lang strings
Allow translating field content
Allow translating button and checkbox labels
Allow adding classes to the form field container with field.outerclasses
Updated French translation
[](#bugfix)
Fixed error message on file upload
Fixed overriding defaults for the file type in forms
v1.0.3
12/11/2015
[](#improved)
Updated languages
Allow an action to stop processing
[](#bugfix)
Fix captcha validation
Fix issue where Form was unsetting valid page
v1.0.2
12/01/2015
[](#bugfix)
Fixed merge of defaults settings
Support for arrays in data.txt.twig
Fixed blueprint for admin
v1.0.1
12/01/2015
[](#new)
New file upload field
Added modular form template
Spanish translation
Hungarian translation
Italian translation
v1.0.0
11/21/2015
[](#new)
Server-side validation of forms #11
Added french translation
Added nonce form security
[](#improved)
Show a more meaningful error when the display page is not found
Added links to learn site for form examples
Label can be omitted
Allow user to set the CSS class for buttons
[](#bugfix)
Fixed multi-language forms
Checkbox is translatable
Minor fixes
v0.6.0
10/21/2015
[](#bugfix)
Fixed for missing attributes in textarea field
Fixed checkbox inputs
v0.5.0
10/15/2015
[](#new)
New operation
param to allow different file saving strategies
Ability to add new file saving strategies
Now calls a process()
method during form processing
[](#improved)
Added server-side captcha validation and removed front-end validation
Allow filename
instead of prefix
, format
+ extension
[](#bugfix)
v0.4.0
9/16/2015
[](#new)
PHP server-side form validation
Added new Google Catpcha field with front-end validation
[](#improved)
Add defaults for forms, moved from the themes to the Form plugin
Store multi-line fields with line endings converted to HTML
v0.3.0
9/11/2015
[](#improved)
Refactored all the forms fields
v0.2.1
08/24/2015
[](#improved)
v0.2.0
08/11/2015
[](#improved)
v0.1.0
08/04/2015
[](#new)