我已经使用它的验证器成功实现了骨干表单插件,例如:
var SampleModel = Backbone.Model.extend({
schema: {
field1: {
title: $t.field1, validators: ['required', 'number']
},
field2: {
title: $t.field2, type: 'Select', options: $options.field2, validators: ['required']
},
notes: {
title: $t.notes
}
}
});
现在我正在尝试找到“正确”(此时 - 任何)方法来禁用内置验证器,例如,单击某些复选框。单击复选框后,允许保存表单而不进行验证。
我尝试在没有和之后this.model.schema
为每个字段重建 did ,但它什么也没做。validators
this.model.form.commit()
请您给点建议好吗?
编辑:
现在,我正在使用“脏”方法在方法中添加额外的参数commit
。请参阅 Backbone-forms 提交方法源:
commit: function(options, dontValidate) {
//Validate
options = options || {};
var validateOptions = {
skipModelValidate: !options.validate
};
// DIRTY
if(!dontValidate) {
var errors = this.validate(validateOptions);
if (errors) return errors;
}
//Commit
var modelError;
var setOptions = _.extend({
error: function(model, e) {
modelError = e;
}
}, options);
this.model.set(this.getValue(), setOptions);
if (modelError) return modelError;
},