[英]Backbone Validations on multiple fields of a model and returning same error
我有一個模型,其中包含三個字段field1,field2,field3。 我必須驗證,如果三個字段中的任何一個都具有某個值,則不應返回任何錯誤,否則應返回一個錯誤。
我的研究:我可以為此使用Backbone.Validations插件。 如下 :
var model = Backbone.Model.extend({
validation: {
field1: {
required: true,
msg : "Field is required"
}
,field2: {
required: true,
msg : "Field is required"
}
,field3: {
required: true,
msg : "Field is required"
}
}
});
上面的代碼將驗證所有三個必填字段。
我很清楚,直到這里。 我想要的是,如果field1為null,則僅對field2進行驗證;類似地,如果field2為null,則僅對field3進行驗證。 如果field3也為null,則返回錯誤消息。 一旦發現三個字段中的任何一個都具有值,則隨后的字段不應被驗證。
我不確定,是否可以使用Backbone.Validations插件進行這種條件驗證。 如果可以的話,請幫忙。 另外,請提出任何我可能用來更深入地研究Backbone的鏈接,因為我只是它的新手。
我正在關注Backbone.Validation的以下鏈接: https : //github.com/thedersen/backbone.validation
從未使用過Backbone.Validation,但是您可以自己進行驗證,使用Backbone非常簡單。
http://backbonejs.org/#Model-validate
只需在模型上定義一個validate
方法即可。 它將接收當前模型屬性以及傳遞給set
或save
的選項作為參數。
var MyModel = Backbone.Model.extend({
validate: function(attrs, options){
if(_.isUndefined(attrs.field1) && _.isUndefined(attrs.fields2) && _.isUndefined(attrs.field3)){
//return your error as you wish
return { message: "Either field1, field2 or field3 must be present" }
}
}
});
請注意,Backbone文檔指出在validate
方法中,如果一切正常,則不返回任何內容。
然后,您可以隨時通過以下方式測試驗證:
var model = new MyModel();
console.log(model.isValid());
而且您可以在需要時得到此錯誤消息
console.log(model.validationError.message);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.