エラーがポップアップしない理由や、このようなことが発生するのを禁止している理由がわかりません。このバックボーン モデルで検証する方法を見つけようとしています。クライアント側で使用し、学習します。
これは現在、何も含まれていない文字列を設定しています。
var user = new User();
user.set({'firstName': ''}, {validate:true});
私のバックボーン コード
var User = Backbone.Model.extend({
defaults: {
firstName: 'J.R.',
lastName: 'Smith',
email: 'jsmith@knicks.com',
phone: '212-424-6234',
birthday: '03/05/1982',
city: 'New York'
},
validate: function(attrs) {
if(!attrs.firstName) {
return 'You must enter a real name.'
},
if(!attrs.lastName) {
return 'You must enter a real name.'
},
if(attrs.email.length < 5 ) {
return 'You must enter a real email.'
},
if(attrs.phone.length < 10 && attrs.phone === int) {
return 'You must enter a real phone number, if you did please remove the dash and spaces.'
},
if(attrs.city.length < 2 ) {
return 'You must enter a real city.'
},
},
location: function(){
return this.get('firstName') + ' ' + this.get('lastName') + 'is currently in ' + this.get('city') + '.';
},
initialize: function() {
this.on('invalid', function(model, invalid){
console.log(invalid);
//when setting a user user.set('age', -55, {validate : true}); the validate true makes sure it validates
});
},
});