This document is for an older version of
View latest version →
Freeform allows for true multi-page forms (a POST submit per page). Here's some important information to know about them:
- Each page is submitted through POST
- There is no unique URI segment per page at this time.
- Users cannot jump ahead to different pages, only forward and backward 1 page.
- Multi-page forms work with the built-in AJAX feature. 3.10.0+
In versions prior to Freeform 3.10.0, AJAX will not work with multi-page forms.
Please note that editing existing submissions via the front end in multi-page AJAX forms will currently not work correctly. We hope to be able to resolve this issue in an upcoming release.
- Sessions for incomplete submissions are stored for 3 hours, and then are removed after that.
Multi-page forms cannot be started, stopped and returned to again at a later time to finish. The process has to be a continuous one, but the user has 3 hours before the form will timeout the submission.
- Users can go backward in forms (if enabled).
In versions prior to Freeform 3.8.0, you will experience the following behavior (if using an older version of Freeform, please upgrade to the latest to resolve this issue):
- Any data entered into the current page that has NOT yet been submitted "forward" will not be saved when clicking Previous submit button. As in, clicking the Previous button will not save any changes you made to that form page.
- Multi-page forms will not go backward when using in conjunction with reCAPTCHA v2 Invisible and reCAPTCHA v3 (it works fine with reCAPTCHA v2 Checkbox).
- If an earlier page contains file upload field(s), files will actually be uploaded before the form is officially submitted.
- If the form is never completed, the submission clearing (described above) will remove the file after 3 hours.
Rearranging Pages and Fields
When editing forms in the Form Builder interface inside the control panel, if you wish to rearrange pages, simply drag and drop the tabs. If you need to move a field from one page to another, drag and drop the field onto the page tab you'd like it to be moved to. It will then appear at the top of that page, and you can finish placing it where it should be on that page.