Атрибут formmethod тега <input>
Описание
Атрибут formmethod определяет метод HTTP (GET или POST), который будет использоваться для отправки данных формы. Этот атрибут применяется к элементам <input type="submit"> или <button type="submit"> и переопределяет метод, указанный в атрибуте method родительской формы.
<form action="/submit" method="post">
<input type="text" name="username" placeholder="Имя пользователя">
<!-- Обычная кнопка отправки (использует метод формы - POST) -->
<input type="submit" value="Отправить как POST">
<!-- Кнопка с переопределением метода -->
<input type="submit" formmethod="get" value="Отправить как GET">
</form>
Доступные значения:
| Значение | Описание |
|---|---|
get |
Данные формы добавляются к URL (видимы в адресной строке) |
post |
Данные формы отправляются в теле запроса (не видны в URL) |
Рекомендации по использованию:
- Используйте GET для безопасных запросов (поиск, фильтрация)
- Используйте POST для отправки конфиденциальных данных или больших объемов
- Сочетайте с
formenctypeдля управления кодировкой данных - Помните о ограничении длины URL при использовании GET (около 2048 символов)
Пример с разными методами в одной форме:
<form action="/products">
<input type="text" name="query" placeholder="Поиск товаров">
<!-- Поиск использует GET -->
<input type="submit" formmethod="get" value="Искать">
<!-- Подписка использует POST -->
<input type="email" name="email" placeholder="Ваш email">
<input type="submit" formmethod="post" value="Подписаться">
</form>
Важно:
- Атрибут работает только для элементов внутри формы или связанных с формой через
formатрибут - Некоторые браузеры могут не поддерживать этот атрибут для элементов
<button> - Для сложной логики отправки лучше использовать JavaScript
Примечание: Атрибут formmethod особенно полезен когда одна форма должна обрабатывать разные типы запросов. Например, форма может содержать как поисковый запрос (GET), так и подписку на рассылку (POST). Это позволяет избежать создания отдельных форм для каждого типа запроса.