requires()
A field stays disabled until all its dependencies are both satisfied (have a value) and available (enabled by their own rules). This is the rule for stepwise flows — confirmPassword requires password, companySize requires companyName.
Signature
Section titled “Signature”requires( field, ...deps,)Dependencies can be:
- field names
- named field builders
- predicates
(values, conditions) => boolean check(field, validator)helpers
An optional final object is treated as rule options:
requires('submit', 'password', { reason: 'Password required before submit',})Important behavior
Section titled “Important behavior”- Field-name dependencies check both value satisfaction and dependency availability. If
startTimeis disabled by another rule,repeatEverystays disabled too. - Predicate dependencies only check the predicate result — no availability awareness.
- Multiple dependencies are ANDed together.
Examples
Section titled “Examples”// Field-name — waits for presence + availabilityrequires('repeatEvery', 'startTime')
// check() bridge — waits for validityrequires('submit', check('email', /^[^\s@]+@[^\s@]+\.[^\s@]+$/))
// Predicate — custom logicrequires('endTime', ({ startTime }) => typeof startTime === 'string' && startTime.length > 0)Default reason
Section titled “Default reason”"requires <fieldName>"for field-name dependencies"required condition not met"for predicate dependencies
See also
Section titled “See also”- Quick Start: requires — interactive demo
- Field Satisfaction Semantics — how Umpire defines “present”
- Topological Evaluation Order — why
requirescreates ordering edges