У меня есть представление, которое отображается динамически. Он может иметь некоторые входы или может не иметь. После того, как пользователь заполняет все и пытается отправить данные, я вызываю this.model.isValid(true)
(или this.model.isValid()
), и он возвращает false
, даже если данные с входов действительны.Пропустить проверку атрибута модели с использованием Backbone.Validation
Я думаю, что причина Backbone Validation пытается проверить атрибуты входных данных, которые мы не отображали.
Есть ли какое-либо решение пропустить атрибуты модели, если у нас нет sticked элементов вида?
UPDATE:
Мой модель похожа на это:
MyApp.module("RecordModel", function (RecordModel, MyApp, Backbone) {
RecordModel.recordModel = Backbone.Model.extend({
validation: {
inn: {
pattern: 'inn',
msg: MyApp.messages.inn
},
bik: {
pattern: 'bik',
msg: MyApp.messages.bik
},
uin: {
pattern: 'uin',
msg: MyApp.messages.uin
},
sum: {
pattern: 'sum',
msg: MyApp.messages.sum
}
}
});
});
Наручники:
bindings: {
'#uin': {
observe: 'uin',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
},
'#bik': {
observe: 'bik',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
},
'#inn': {
observe: 'inn',
setOptions: {
validate: true
},
events: ParkingMate.Validation.events.inputEvents
},
'#sum': {
observe: 'sum',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
}
}
Так что по какой-то причине мы не представляем вход #sum
. Поскольку мы не попали в наш DOM, он не существует в RecordModel
, но магистраль все еще пытается его проверить. Или, если у нас есть этот вклад в нашей DOM, все работает нормально.
нужна дополнительная информация о том, как реализована ваша проверка модели для этих полей. –
Denis прав, пожалуйста, укажите [mcve]. –