Core Examples
Open Live Vanilla Showcase · Simple form · Performance form
Nested profile
class ProfilePolicy implements ValidationPolicy {
addValidations(helper: ValidatorHelper): Validator[] {
return [
helper.validateFor('profile.firstName').isRequired('First name is required'),
helper.validateFor('profile.lastName').isRequired('Last name is required'),
helper.validateFor('profile.email')
.isRequired('Email is required')
.isEmail('Enter a valid email address')
];
}
}
Conditional billing address
class BillingPolicy implements ValidationPolicy {
addValidations(helper: ValidatorHelper): Validator[] {
return [
helper.validateFor('billing.street', '!billing.sameAsShipping').isRequired('Street is required'),
helper.validateFor('billing.city', '!billing.sameAsShipping').isRequired('City is required'),
helper.validateFor('billing.postalCode', '!billing.sameAsShipping').isZipCode('Enter a ZIP code')
];
}
}
Generated fields
function generatedPolicy(fields: Array<{ path: string; label: string }>): ValidationPolicy {
return {
addValidations(helper) {
return fields.map((field) =>
helper.validateFor(field.path).isRequired(`${field.label} is required`)
);
}
};
}