Скрипты позволяют гибко валидировать значения полей для предотвращения ошибок заполнения форм.
Добавим в форму «Отпуск» проверку дат начала и окончания отпуска. Эту форму мы создавали в разделе Быстрый старт. Добавим в скрипт формы следующий блок кода:
form.onChange(['Дата начала', 'Дата окончания']) .validate('Дата окончания', state => { const [start, end] = state.changes; if (start.date && end.date && start.date >= end.date) return {errorMessage: 'Не может быть раньше даты начала'}; return null; });Теперь при заполнении формы отобразится ошибка, если мы случайно выберем дату окончания отпуска раньше даты начала:
Иногда бывает нужно проверить, заполнено ли одно из нескольких полей формы. Например, электронная почта или телефон в форме обратной связи. Добавить такую проверку поможет следующий скрипт:
form.onChange(['Эл. почта', 'Телефон'], true) .validate('Эл. почта', state => { const email = state.changes[0].text; const phone = state.changes[1].text; if (!email && !phone) return {errorMessage: 'Заполните электронную почту или телефон.'}; return null; });
Здесь мы передаем список полей в метод onChange. Затем добавляем валидацию, внутри которой проверяем, что хотя бы одно из переданных полей заполнено. Если нет, пользователь увидит сообщение об ошибке, указанное в ключе errorMessage.