Я пытаюсь добавить валидацию для элементов управления датой и датой в форме, управляемой шаблоном. Как я могу проверить их, например, «дата должна быть больше даты» и наоборот. Также я подумываю повторно использовать эту проверку в моем приложении для различных элементов управления датой и датой.
3 ответа
Создайте функцию, которая принимает два элемента управления формы. Сравните даты и в случае ошибки установите ошибки элементов управления формы:
compareDates(from: FormControl, to: FormControl) {
const startDate: Date = ConvertYourFormValueToValidDate(from.value);
const endDate: Date = ConvertYourFormValueToValidDate(to.value);
if (startDate.getTime() > endDate.getTime()) {
from.setErrors({ ...from.errors, 'aboveEnd': true });
} else if (startDate.getTime() > endDate.getTime()) {
to.setErrors({ ...to.errors, 'belowStart': true });
}
}
JS Date
может быть по сравнению с использованием <
и >
fromDate = new Date() // today
toDate = new Date(fromDate.valueOf() + 60*60*24) // tomorrow
function toDateIsLater(fromDate, toDate) {
return toDate > fromDate
}
console.log(toDateIsLater(fromDate, toDate))
Так что, если вы используете управляемые темпами формы, у вас есть ngModel на вашем вводе даты. Для проверки вы можете проверить значение вашей модели даты и проверить ее. Чтобы узнать, изменится ли ваша модель, вы можете использовать ngModelChange.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.