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.

3 Answers 3

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

3
  • Just on the main freeform:composer tag
    – Deb Houpe
    Oct 24, 2013 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, 2013 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, 2013 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

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' : '')),

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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