Недавно реализовывала форму с валидацией. Отмечу пару моментов, которые мне помогли: 1. Оказывается, есть встроенная функция у input'ов. Называется checkValidity(message). Если поле невалидно, появляется встроенный в браузере тултип с сообщением message. То есть можно самостоятельно кодом менять текст во встроенном тулипе.🥳 2. Очень помог imask - маленькая библиотечка. Она позволяет,например, заполнить в нужном формате поле. Например, можно настроить, чтобы при вводе номера телефона, скобочки/пробельчики выставлялись автоматически.