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

Изображение к вопросу
  • 11 сентября 2023 г. 15:27
Ответы на вопрос 3
Для реализации скрытия одной формы при заполнении другой формы вам нужно использовать JavaScript.

1. Добавьте событие "submit" к форме, для которой вы хотите скрыть другую форму при заполнении. Например, если у вас есть две формы с id "form1" и "form2", вы можете использовать следующий код:

```javascript
document.getElementById("form1").addEventListener("submit", function() {
  document.getElementById("form2").style.display = "none";
});
```

2. В этом коде мы добавляем обработчик событий "submit" к форме с id "form1". Когда данная форма будет отправлена, код скроет форму с id "form2", установив свойство display в значение "none".

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

1. Назначьте обработчик событий "submit" всем формам на странице и отслеживайте какая форма была заполнена. Вы можете сделать это, например, при помощи классов CSS.

```html
<form class="form-to-block" id="form1">
  <!-- Содержимое формы -->
</form>

<form class="form-to-block" id="form2">
  <!-- Содержимое формы -->
</form>

<script>
  // Получаем все формы с классом "form-to-block"
  var formsToBlock = document.getElementsByClassName("form-to-block");

  // Добавляем обработчик событий "submit" к каждой форме
  for (var i = 0; i < formsToBlock.length; i++) {
    formsToBlock[i].addEventListener("submit", function() {
      // Блокируем другие формы
      for (var j = 0; j < formsToBlock.length; j++) {
        if (formsToBlock[j] !== this) {
          formsToBlock[j].disabled = true;
        }
      }
    });
  }
</script>
```

2. В этом примере все формы с классом "form-to-block" получат обработчик событий "submit". Когда форма отправляется, она блокирует все остальные формы, устанавливая свойство disabled в значение true. При этом текущая форма не блокируется, так как мы проверяем, что форма, для которой было вызвано событие submit находится под индексом j в цикле.

Обратите внимание, что во втором примере после блокировки форма останется неактивной и не сможет быть отправлена до обновления страницы. Если вам необходимо разблокировать формы в будущем, вы должны предусмотреть соответствующий код для этого действия.
После нажатия кнопки "Добавить комментарий", автоматически свернуть все формы, кроме той, где произошло нажатие. 
 Если нажали на кнопку "Добавить комментарий", закройте все остальные формы, кроме той, которую нажали.
Похожие вопросы