Атрибут 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). Это позволяет избежать создания отдельных форм для каждого типа запроса.