validator.js
validator.js copied to clipboard
How to use "required_if" ?
I have tried using "required_if" rule but validation return as "failed". Rule:
'status':'required|in:lifetime,limited',
'date':'required_if:status,limited|in:01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31'
If status field value is lifetime, rule for date field still executed as required field.
Any idea how to solve this problem? Thank you.
@vafrcor I tested this and seems the functionality is fine.
Test code:
var validator = require('../src/validator');
var person = {
status: 'lifetime',
},
rules = {
status:'required|in:lifetime,limited',
date:'required_if:status,limited|in:01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31'
};
console.log('Object to be tested:');
console.log(JSON.stringify(person, null, 4) + '');
console.log('Validation rules:');
console.log(JSON.stringify(rules, null, 4) + '');
console.log('Result:');
console.log(JSON.stringify(validator.validate(person, rules), null, 4));
And result is:
Object to be tested:
{
"status": "lifetime"
}
Validation rules:
{
"status": "required|in:lifetime,limited",
"date": "required_if:status,limited|in:01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31"
}
Result:
{
"status": "success",
"rejects": []
}
Could you please run the test and post results here?