@lemoncode/fonk-required-by-field-validator
v1.0.1
Published
Update description: This is a [fonk](https://github.com/Lemoncode/fonk) microlibrary that brings validation capabilities to validate if a field of a form is required by another field
Downloads
117
Maintainers
Readme
fonk-required-by-field-validator
This is a fonk microlibrary that brings validation capabilities to:
- Validate if a field of a form is required by another field.
How to install it:
npm install @lemoncode/fonk-required-by-field-validator --save
How to add it to an existing form validation schema:
We have the following form model:
const myFormValues = {
person : 'John',
country: 'U.S.A',
state: 'California',
}
We can add a requiredByField validation to the myFormValues
import { requiredByField } from '@lemoncode/fonk-required-by-field-validator';
const validationSchema = {
field: {
state: [
{
validator: requiredByField.validator,
customArgs: {
field: 'country',
value: 'U.S.A',
},
},
],
},
};
- Or with a
condition
:
import { requiredByField } from '@lemoncode/fonk-required-by-field-validator';
const validationSchema = {
field: {
state: [
{
validator: requiredByField.validator,
customArgs: {
field: 'country',
condition: fieldValue =>
fieldValue === 'U.S.A' || fieldValue === 'Australia',
},
},
],
},
};
- Another
condition
:
import { requiredByField } from '@lemoncode/fonk-required-by-field-validator';
const validationSchema = {
field: {
state: [
{
validator: requiredByField.validator,
customArgs: {
field: 'country',
condition: (fieldValue, values) =>
fieldValue === 'U.S.A' && values.person === 'John',
},
},
],
},
};
You can customize the error message displayed in two ways:
- Globally, replace the default error message in all validationSchemas (e.g. porting to spanish):
import { requiredByField } from '@lemoncode/fonk-required-by-field-validator';
requiredByField.setErrorMessage('El campo es requerido');
- Locally just override the error message for this validationSchema:
import { requiredByField } from '@lemoncode/fonk-required-by-field-validator';
const validationSchema = {
field: {
state: [
{
validator: requiredByField.validator,
customArgs: {
field: 'country',
value: 'U.S.A',
},
message: 'Required field',
},
],
},
};
Please, refer to fonk to know more.
License
About Basefactor + Lemoncode
We are an innovating team of Javascript experts, passionate about turning your ideas into robust products.
Basefactor, consultancy by Lemoncode provides consultancy and coaching services.
Lemoncode provides training services.
For the LATAM/Spanish audience we are running an Online Front End Master degree, more info: http://lemoncode.net/master-frontend