Реализация логики повторного открытия формы с сохранением данных

Рассмотрим задачу: на сайте присутствует всплывающая форма, которая открывается по клику на кнопку. Необходимо, чтобы при повторном нажатии на эту же кнопку (после успешной отправки данных) открывалось не окно формы, а сообщение об успешной операции.

Основная идея решения заключается в отслеживании факта успешной отправки данных конкретным пользователем. Для этого можно использовать механизм локального хранилища браузера (Local Storage). Алгоритм работы будет следующим:

  • При первой отправке формы данные пользователя сохраняются в Local Storage с определенным ключом (например, formSubmitted).
  • При последующих кликах на кнопку скрипт проверяет наличие этого ключа в хранилище.
  • Если ключ найден - пользователю показывается окно с сообщением об успехе. Если нет - открывается стандартная форма для заполнения.

Однако реализацию осложняет недавнее обновление платформы Tilda. Теперь процесс отправки формы работает иначе:

  • После нажатия кнопки "Отправить" форма автоматически закрывается.
  • Сразу после этого появляется стандартное сообщение об успешной отправке.
  • Критичный момент: у отправленного события или формы отсутствует уникальный идентификатор (ID), который можно было бы легко отследить для привязки логики.

Для решения потребуется:

  1. Настроить кастомный JavaScript-код, который будет перехватывать событие успешной отправки формы (например, через отслеживание изменения DOM или использование колбэков Tilda, если они предусмотрены).
  2. В момент успешной отправки записывать в Local Storage метку (флаг) о завершении процесса.
  3. Модифицировать код открытия всплывающего окна так, чтобы он проверял этот флаг перед показом формы.

Этот подход позволяет создать персонализированный пользовательский опыт, избегая повторного показа формы тем, кто уже выполнил целевое действие.