Hi Everyone,
I'm working on a webform for an archive that will allow scholars making a trip to that archive to ask for materials from the collection to be ready for them when they arrive. Pretty straightforward, right?
So, it's a multi-page webform (details below if you're interested). But the real problem is that on the pages in which the user requests specific items, most of the fields need to be mandatory.
The archivists/librarians want to be sure they get all the information about the items requested, and so need many of these fields to be mandatory. But on a page with ten possible items in which the user only requests, say, three items and fills out the fields that describe those three items, the Webforms module gets upset that the other 7 fieldsets have not been completed because a bunch of them are mandatory. I thought perhaps that the "webform addmore" module would solve this, but all it does is hide fieldsets and then reveal them. If the user leaves these fieldsets blank (because they never added/revealed them in the first place) and those hidden fieldsets contain mandatory fields, the user still can't submit the form because mandatory fields haven't been filled out. Make sense?
Has anyone else encountered this use case? How did you solve it? Haven't encountered it but have an idea about how to approach it? I'm all ears!
Supplemental info about how the form works and what it's designed to do:
Page One. The first page asks for basic info about the user, when she's planning to visit, and the type of material requested. The "type of material" field consists of three radio buttons with the following choices: 1) Published Material 2) Archives and Manuscripts 3) Both Published Material and Archives and Manuscripts.
Page Two. Page to order Published Material. If the user selects option 1 or 3, she gets this page with fields for describing the published material she wants. If she chose option 1, she gets a submit button at the end. Option 3, she gets a "next page" button which takes her to page 3. Up to 10 items (represented by fieldsets) can be requested.
Page Three. Page to order Archives and Manuscripts. If the user selects option 2, she gets this page with fields for describing the published material she wants. If the user selects option 3, she fills out page two first and then goes to "next page," which is this one. In either case, there is a "submit" button at the end. Up to 10 items (represented by fieldsets) can be requested.

Comments
Hi Thomas. As luck would have
Hi Thomas. As luck would have it, I'm the current webform maintainer and I live within walking distance of Harvard. :)
You might try using conditionals (webform 7.x-4.x) to show components (or a containing fieldset). Required components which are hidden by conditionals are not required to be filled in (because, well, they can't be).
Your other option would be to not use webform's required validation and implement your own. You would install it by implementing HOOK_webform_client_form_alter. You could validate that if, one piece of data is entered for the asset, then all the required ones must be. This presumes that you are a PHP developer and don't mind creating a custom modules for the site.
Good luck.