Атрибут formmethod тега <button>


Описание

Атрибут formmethod определяет HTTP-метод, который будет использоваться при отправке формы. Этот атрибут переопределяет метод, указанный в атрибуте method родительской формы, но только для конкретной кнопки отправки.

Пример использования:
<form action="/process" method="post"> <input type="text" name="data"> <button type="submit">Отправить POST</button> <button type="submit" formmethod="get">Поиск GET</button> </form>

Допустимые значения:

Значение Метод HTTP Типичное использование
post POST Отправка данных, создание ресурсов
get GET Получение данных, поисковые запросы
dialog - Закрытие диалогового окна <dialog>

Практический пример с разными методами:

<form action="/api/data" method="post"> <input type="text" name="search" placeholder="Поиск..."> <button type="submit" formmethod="get"> Поиск (GET) </button> <button type="submit"> Сохранить (POST) </button> </form>

Комбинация с другими атрибутами:

<form> <input type="text" name="query"> <button type="submit" formaction="/search" formmethod="get" formtarget="_blank"> Поиск в новом окне </button> </form>

Важные замечания:

  • Работает только с кнопками типа submit
  • Метод GET не должен использоваться для конфиденциальных данных
  • При GET-запросе данные формы добавляются в URL
  • Для RESTful API можно использовать JavaScript для отправки PUT/DELETE

Пример с диалоговым окном:

<dialog id="settings-dialog"> <form method="dialog"> <p>Сохранить изменения?</p> <button type="submit">Да</button> <button type="submit" formmethod="dialog" value="cancel"> Нет </button> </form> </dialog>

Примечание: Используйте разные методы отправки для разных сценариев: GET - для безопасных операций чтения, POST - для изменяющих операций. Это соответствует принципам REST.

Совместимость с HTML5:

<form> <button type="submit" formmethod="post" formnovalidate> Отправить без проверки </button> </form>