После проверки полей формы отправка не вызывает повторного запуска проверки. Есть ли способ вызвать повторный запуск проверки при отправке формы?
У меня есть поле формы, значение которого может стать недействительным, если оно не отправлено в течение определенного периода времени. Это не асинхронный режим; Я просто пытаюсь охватить сценарий, в котором пользователь какое-то время не нажимает кнопку «Отправить», а когда они в конечном итоге это сделают, значение станет недействительным. Окончательная форма запоминает результат проверки, которая происходит сразу после изменения значения, что означает, что неизмененное значение остается действительным независимо от того, сколько времени проходит между проверкой и отправкой. Это то поведение, которое я хочу изменить; промежуточное время имеет значение в моем случае использования. Я пробовал использовать прослушиватель beforeSubmit
из пакета final-form-submit-listener
, но он дает доступ только к объекту FormApi
. Я пробовал использовать функции pauseValidation
и resumeValidation
из FormApi
, но они не смогли достичь того, чего я хочу, или, возможно, я использую их неправильно. У меня такое ощущение, что это до боли очевидно, как это сделать, но я не могу этого понять. ????
Я создал эту песочницу, чтобы продемонстрировать, что я иметь в виду.
Спасибо!
ОБНОВЛЕНИЕ. Дополнительная информация:
- Это на время. Если вы выбираете время на сегодня, вы можете выбрать время через 15 минут. Это действительно сейчас, потому что это в настоящее время в будущем. Если вы не касаетесь формы в течение следующих 20 минут, а затем нажимаете кнопку «Отправить», отправка должна быть предотвращена, потому что выбранное вами время теперь на 5 минут раньше.
- Я подумал о том, чтобы просто добавить проверку прямо в обработчик отправки. Вот два ответа. Однако для меня это не идеально, потому что Final Form не принимает ошибки и не передает их объекту
meta
для полей формы. Моя кодовая база сложна и сильно зависит от объектаmeta
для отображения сообщений об ошибках. Попытка воспроизвести эту функциональность в обработчике отправки может сработать, но это хакерский метод и противоречит соглашениям, используемым во всей кодовой базе.