backbone.validation icon indicating copy to clipboard operation
backbone.validation copied to clipboard

Ability to specify functions for built in validators

Open akshaddhoke opened this issue 9 years ago • 1 comments

It would be easy for users to use built in validators in a conditional way, if functions were supported to be used for built in validators (similar to required validator). e.g.

validation: {
  email: {
    pattern: function(){
       if(condition) {return 'email';}
       else {return ''}
     }
  }
}

Thoughts on having this??? The implementation could be similar to default required validator:

        pattern: function(value, attr, pattern, model) {
          var pattern = _.isFunction(pattern) ? pattern.call(model, value, attr, model) : pattern;
          if (!hasValue(value) || !value.toString().match(defaultPatterns[pattern] || pattern)) {
            return this.format(defaultMessages[pattern] || defaultMessages.inlinePattern, this.formatLabel(attr, model), pattern);
          }
        }

akshaddhoke avatar Apr 24 '15 23:04 akshaddhoke

I second that. I would like to provide a function for dynamic ranges of the range validator as follows:

validation: {
    weight: {
      range: function(value){
         var min = 0;  // some calculated value
         var max = 50; // some calculated value
         return [min, max];
      }
    }
}

jekuno avatar Dec 11 '15 10:12 jekuno