Я пытаюсь проверить записи для возраста ребенка. Допустимые значения: «< 1» и 1-29.проверка нокаута - пользовательские валидаторы
Для этого я пытаюсь создать пользовательские валидаторы, как показано ниже.
Я предполагаю, что эти валидаторы работают в порядке, поэтому я их перемещал.
Прецеденты я "м тестирование:
- Пользователь вводит 30, бросок„должно быть меньше, чем 29“Ошибка
- Пользователь вводит 0 или ничего, бросить„скажите, пожалуйста, как старый“ошибка
- Пользователь вводит «6 месяцев», бросить ошибку для них, чтобы изменить значение «< 1»
- Пользователь вводит «< 1» нет ошибки
- Пользователь вводит 1 или 2 или 3 или 4 ..., нет ошибки
Я не смог пройти все эти испытания. # 5 терпит неудачу.
var ChildModel = function(cookieAge){
var self = this,
age = cookieAge || "";
self.age = ko.observable(age).extend({
validation: [{
validator: function (val) {
return val !== "" || parseInt(val,10) === 0;
},
message: 'Please say how old this child is.'
},{
validator: function (val, someOtherVal) {
return val=== "<1" || val <= someOtherVal;
},
message: "This child's age must be less than or equal to 29.",
params: 29
},{
validator: function (val) {
var text = val.match(/(\D+)/g);
log(text);
return val.match(/^[0-9].$/) || text && text.length > 0;
},
message: "(contains text) For Children less than 1, please use '<1'"
}]
});
};
Спасибо! Я ценю это. – Scott