Можно ли сделать форму без тега form

«Можно ли сделать форму без тега form» — вопрос из категории HTML, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. HTML5 позволяет создавать формы без тега <form>, используя атрибут form у инпутов и связывая их с формой по id. Также можно управлять отправкой данных через JavaScript.

Пример:

<div id="my-form">
  <input type="text" name="username" form="my-form">
  <button type="submit" form="my-form">Отправить</button>
</div>

<script>
  document.querySelector('#my-form button').addEventListener('click', () => {
    const formData = new FormData(document.querySelector('#my-form'));
    // Отправка через fetch
  });
</script>

Однако у такого подхода есть ограничения:

  • Нет поддержки в старых браузерах
  • Нет автоматической валидации
  • Нужно вручную обрабатывать отправку
  • Не работает с нативными формами (например, автозаполнение)