在我的基於骨幹的項目中,我有一種形式,其中只有一組輸入字段是強制性的。例如,輸入電話號碼的輸入框,或包含電話號碼的上傳文件。骨幹驗證如何執行基於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