Ответ
Да, можно. 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>
Однако у такого подхода есть ограничения:
- Нет поддержки в старых браузерах
- Нет автоматической валидации
- Нужно вручную обрабатывать отправку
- Не работает с нативными формами (например, автозаполнение)