var contact = new Backbone.Model({firstName:'John',lastName:'Doe'}); contact.validate = function(attributes,options){ var validPhone = /\(?\d{3}\W?\s?\d{3}\W?\d{4}/.test(attributes.phone); if(!validPhone){return 'Setting or Saving Invalid Phone Number Attempted';} }; //Have Backbone listen for invalid event on contact model Backbone.listenTo(contact,'invalid',function(model,error,options){ console.log(model,error,options); }); //setting invalid phone number will trigger the invalid event contact.set('phone','111-1-1111',{validate:true}); //will not set, fails validation