adopted-ember-addons / ember-changeset-validations

Validations for ember-changeset
http://bit.ly/ember-changeset-demo
Other
218 stars 100 forks source link

Dependent field validation capability #346

Open ctwoolsey opened 2 years ago

ctwoolsey commented 2 years ago

It would be really nice when writing a custom validator to be able to refer to other fields in the validation object. Currently for this level of validation, I have to write code when the field changes to do validation in my component and then use 'changeset.addError' which isn't working as expected. issue 651 ember-changeset

for example:

export default {
  fieldA: [validatePresence(true)],
  fieldB: [validatePresence(true)],
  complexField: validateCustom()]
}

complexField might validate on the value of 'fieldA' and/or 'fieldB'. For example:

export default function validateCustom({ min, max } = {}) {
  return (key, newValue, oldValue, changes, content) => {
    if (fieldA === 'A'  && newValue === 'Yes it is A') {
      return true;
    }
    if (fieldB=== 'B'  && newValue === 'Yes it is B') {
      return true;
    }
    return false;
  }
}