Я инженер-программист. Я не люблю перетаскивать вещи, использовать предварительно сгенерированный код, все, что не находится под моим непосредственным контролем. Я старый, средне-злой бэкенд-разработчик (и CEO собственного стартапа, но это уже другая история)

Добро пожаловать, HubSpot Forms!
«Это просто, просто создайте форму в HubSpot и вставьте сгенерированный код в наш лендинг. 5 минут, копипаст, готово».

Ожидание:

Результат:

Оооо, легко. Нам нужно добавить заполнитель и изменить класс CSS поля, и мы должны удалить флаг. Как описано в Документации HubSpot, кажется, что правильный подход w̶o̶r̶k̶a̶r̶o̶u̶n̶d̶ заключается в использовании обратного вызова onFormGenerated и редактировании DOM с помощью вечнозеленого jQuery.

Это фрагмент, который я использовал для настройки формы

Хорошо, почти готово. Немного отступов, немного полей, но почти есть.

Попробуем заполнить его электронной почтой. Давайте проверим это.

[7 минут спустя] Подтверждение! Конечно, проверка. Мой адрес электронной почты недействителен, пока я не наберу «.co», и по какой-то неясной причине валидатор hubspot удалит все классы из поля и добавит пользовательский класс. Хорошо, есть подход w̶o̶r̶k̶a̶r̶o̶u̶n̶d̶, описанный в документации. Я могу использовать атрибут errorClass.

Я сертифицированный архитектор облачных решений. Последние 15 лет своей карьеры я посвятил разработке и написанию кода для серверной части. Я действительно восхищаюсь разработчиками внешнего интерфейса.
Понятно, что все классы удаляются во время проверки. Эта задержка создает эффект анимации изменения размера (у меня мысль «это не ошибка, это фича»).

Входные данные имеют базовый класс hs-input, который никогда не удаляется. Но невозможно указать пользовательский класс. Через 25 минут я понял, что мне не хватает только ширины. Я закончил с этим кодом

Я Томмазо Донинелли, генеральный директор и основатель Hakuna Cloud. Мы помогаем техническим директорам и компаниям снизить расходы на облачные вычисления, предоставляя им продукт SaaS для динамического запуска и остановки неиспользуемых облачных серверов.