2

Composing multi page form using Freeform Pro Composer where values are required on 2 different pages. Both pages are in same form with pagebreak creating two separate pages. Values are required on both the first and second page of the form. When using straight required="name|last_name|id_number" (some of those fields span onto page two of the form) the user can not submit the form without getting error messages about fields being required that are on page 2 of the form which they have not seen yet. Any thoughts?

I don't want to create two separate forms because I want all of the data to dump into the same database entry.

2

Do you have the required parameter applied to the freeform:page:1 variable tag like the docs say (http://www.solspace.com/docs/freeform/form/#required) or is it on the main freeform tag pair?

Update:
If you are using Composer I believe you need to remove the required parameter entirely from that tag and use the required option for each field you want instead

| improve this answer | |
  • Just on the main freeform:composer tag – Deb Houpe Oct 24 '13 at 15:29
  • 1
    Perfect!! I had not noticed that in the drop down. Amazing how the little things trip you up sometimes! Thank you. – Deb Houpe Oct 24 '13 at 17:03
  • Great! If you could mark my post as the answer I would appreciate it, and it will help other people that run into the same problem. – diemer Oct 24 '13 at 20:08
1
{freeform:page:1 required="name|phone|address"}
    // content
{/freeform:page:1}

{freeform:page:2 required="favorite_food|favorite_sports"}
    // content
{/freeform:page:2}

Straight from the docs: http://www.solspace.com/docs/freeform/form/#freeform_page_1

| improve this answer | |
0

I fixed this by finding the follow line in mod.freeform.php

  // -------------------------------------
  //    halt on errors
  // -------------------------------------
  if (count($all_errors) > 0)

and replacing it with this:

  $submit_to_previous = (ee()->input->get_post('submit_to_previous') !== FALSE);    
  if (count($all_errors) > 0 && !$submit_to_previous )

If you have any HTML5 validation you will need to disable validation on previous click too. So find the line in the function replace_submit in mod.freeform.php :

form_submit($args),

and replace it with:

form_submit($args,$args['value'],($args['name']=='submit_to_previous' ? ' formnovalidate' : '')),
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.