Backbone Models Validations 1

by shravan

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script>

JavaScript

var Vehicle = Backbone.Model.extend({
    validate: function (attrs, options) {

        var validColors = ['red', 'green', 'blue'];

        var colorIsValid = function (attrs) {
            if (!attrs.color) return true;
            return _(validColors).include(attrs.color);
        };

        if (!colorIsValid(attrs)) {
            return "color must be one of: " + validColors.join(',');
        }
    }
});

var car = new Vehicle();

car.on("invalid", function (model, error) {
    alert(error);
});

car.set('year', 2012);

car.set('color', 'red');
console.log(car.get('color'));


car.set('color', 'test');
console.log(car.get('color'));

car.save('color', 'xyz');