在我的基于骨干的项目中,我有一种形式,其中只有一组输入字段是强制性的。例如,输入电话号码的输入框,或包含电话号码的上传文件。骨干验证如何执行基于OR条件的验证
我正在尝试使用Thedersen主干验证http://thedersen.com/projects/backbone-validation/。所有验证模式和方法似乎都是以每个字段为基础的,而不是组合OR。
有没有一种方法可以写一个验证器来说只有一个字段是必需的?
在我的基于骨干的项目中,我有一种形式,其中只有一组输入字段是强制性的。例如,输入电话号码的输入框,或包含电话号码的上传文件。骨干验证如何执行基于OR条件的验证
我正在尝试使用Thedersen主干验证http://thedersen.com/projects/backbone-validation/。所有验证模式和方法似乎都是以每个字段为基础的,而不是组合OR。
有没有一种方法可以写一个验证器来说只有一个字段是必需的?
你并不需要使用插件,Backbone有validation OOTB。
所有您需要做的就是解析表单,将其存储到模型中并保存。验证将默认运行。
例子:
var Address = Backbone.Model.extend({
validate: function(attrs, options) {
if (!attrs.phone1 && !attrs.phone2) {
return "You must provide at least 1 phone number";
}
}
});
你可以为这种特殊情况定义custom "required" validator。在该功能中,您可以检查是否至少给出了一个选项(电话号码或文件)。
事情是这样的:
validation: {
attribute: {
required: function(val, attr, computed) {
return !(val || app.models.phoneFile)
}
}
}
我没有用backbone.validation自己,但在看文档,您可以通过所要求的性能提供了一个功能http://thedersen.com/做到这一点项目/骨干验证/#做,你支持,有条件的验证 – Jack