Используйте одну и ту же gform дважды на одной странице

Я работаю на веб-сайте, который должен отображать одну и ту же форму несколько раз на одной странице.

Плагин, который создает формы, называется Гравитационные формы.

Я уже изучил предоставленную документацию и не смог найти ни одного действия, которое выполняло бы эту работу.

Я думаю, мне нужно создать функцию, которая хранит в массиве идентификатор каждой созданной формы и выполняет сравнение для каждой новой формы, поэтому я, вероятно, смогу изменить идентификатор элемента формы (???).

Есть предположения?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 689
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решил проблему, напечатав GravityForm внутри тега noscript и удалив его, когда форма требуется.

См. пример:

var $formContainer = $(".formContainer");
function hide_form($container) {
  $container.slideUp();
  var add_noscript_tag = "<noscript>" + $container[0].innerHTML + "</noscript>";
  $container.empty();
  $container.append(add_noscript_tag);
}
function show_form($container) {
  var remove_noscript_tag = $container[0].innerHTML
    .replace("<noscript>", "")
    .replace("</noscript>", "");
  $container.empty();
  $container.append(remove_noscript_tag);
  $container.slideDown();
}
$("button").click(function() {
  var $FormContainer = $(this).next();
  if ($FormContainer.is(":visible")) {
    hide_form($FormContainer);
  } else {
    var $otherForm = $(".formContainer:visible");
    if ($otherForm.length > 0) {
      hide_form($otherForm);
    }
    show_form($FormContainer);
  }
});
button {
  margin: 20px 0;
}
.formContainer {
  display: none;
  background: #eee;
}
.formContainer form {
  padding: 20px;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <button>open form 1</button>
  <div class = "formContainer">
    <noscript>
      <form>
        <input type = "text" value = "Name"/>
        <input type = "text" value = "Phone"/>
        <input type = "text" value = "Email"/>
      </form>
    </noscript>
  </div>
</div>
<div>
  <button>open form 2</button>
  <div class = "formContainer">
    <noscript>
      <form>
        <input type = "text" value = "Name"/>
        <input type = "text" value = "Phone"/>
        <input type = "text" value = "Email"/>
      </form>
    </noscript>
  </div>
</div>

Другие вопросы по теме