diff --git a/lib/Validation.js b/lib/Validation.js index 8366cf8..c38c3a7 100644 --- a/lib/Validation.js +++ b/lib/Validation.js @@ -12,6 +12,7 @@ class Validation extends React.Component { constructor(props) { super(props); this.validators = {}; + this.descriptors = props.descriptors || {}; ['attachValidator', 'detachValidator', 'handleInputChange'].forEach((m)=> { this[m] = this[m].bind(this); }); @@ -19,16 +20,23 @@ class Validation extends React.Component { getSchema(validator) { var ret = {}; - var rules = validator.props.rules; - if (!Array.isArray(rules)) { - rules = [rules]; - } - rules.forEach((r)=> { - if (!r.validator) { - r.type = r.type || 'string';// default string type for form field + var fieldName; + var rules; + fieldName = validator.getName(); + if (!validator.props.model){ + rules = validator.props.rules; + if (!Array.isArray(rules)) { + rules = [rules]; } - }); - ret[validator.getName()] = rules; + rules.forEach((r)=> { + if (!r.validator) { + r.type = r.type || 'string';// default string type for form field + } + }); + ret[fieldName] = rules; + }else { + ret[fieldName] = this.descriptors[validator.props.model][fieldName]; + } return ret; }