The standard Required and Read Only option on the Form designer lets you define fields that are always required or read-only respectively. However, sometimes you need to make a field required or read only based on the answer(s) to a previous field. This is when you should use the Required Condition and Read Only Condition properties. Both these properties work exactly the same way; so, for ease, we're just going to refer to Required Condition in the rest of this recipe. Everything below applies equally to the Read Only Condition.
Required Condition allows you to define a formula that will control whether or not the field is required. It works in a very similar way to the Visibility property, just for required-ness. Let's assume your Form design currently has a "Do you have any hazards?" field with Data Name of "seeHazards." Also assume that the seeHazards field has the values "Yes" and "No" as available option answers.
- Add a new Text field to your Form design under the seeHazards field.
- Give the new field a Data Name such as "hazardsDescription."
- Find the Required property on the new field, then click the "add condition" link to the right.
- This will hide the standard Required checkbox and show the Required Condition formula field.
- Now we need to create a formula that will give a True or False result.
- When the formula result is True, the field will become required.
- When the result is False, the field will not be required.
Enter the following formula into the Required Condition property:
{{seeHazards}} = 'Yes'
What the above means is that when the seeHazards field is answered with a value of Yes, then the hazardsDescription field will be required. The user will not be able to proceed until they have filled out something in the hazardsDescription. Save your Form and Test it on your device to see the conditionally required functionality in action.