thedersen / backbone.validation

A validation plugin for Backbone.js that validates both your model as well as form input
thedersen.com/projects/backbone-validation
MIT License
1.32k stars 300 forks source link

Call custom function that validates whole model instead of fields #234

Open taivo opened 10 years ago

taivo commented 10 years ago

Is there a way to call a function that validates the model as a whole instead of individual attributes. This would allow more flexible validation of relationship among attributes instead of just their values.

This also allows working with inherited model classes that already have a validate() method defined. For example, if you're working with a mobile backend like Parse.com, whose js API is based on Backbone but instead of Backbone.Model, you are required to use Parse.Object. This class has a method Parse.Object.validate that takes care of a few behind the scene data fields. I'm trying to figure out a way to call Parse.Object.validate either before or after the normal flow of backbone-validation

alancasagrande commented 10 years ago

Not exactly pretty but one way you can do that:

_.extend(MyModel.prototype, Backbone.Validation.mixin);

MyModel.prototype.validate = function () {
  var errors = Backbone.Validation.mixin.validate.apply(this, arguments);

  if (errors) { return errors; }

  // put you validation here
};

Hope it helps.