Вебсправочник
Ваш первый сайт

Урок: сравнить настройки формы и выбранной кнопки

У формы могут быть общие action и method, а у кнопки — собственные переопределения. Урок помогает увидеть эти различия до отправки и затем подтвердить реальный запрос в Network.

Назначение

У формы могут быть общие action и method, а у кнопки — собственные переопределения. Урок помогает увидеть эти различия до отправки и затем подтвердить реальный запрос в Network.

Как это работает

Создайте локальную форму id override-form и submit-кнопку id override-button с formaction. Код читает исходные атрибуты и разрешённые свойства. Он ничего не отправляет и не обращается к серверу.

Пример

const form = document.querySelector("#override-form");
const button = document.querySelector("#override-button");
console.table({
  form:{action:form.action, method:form.method},
  button:{actionAttribute:button.getAttribute("formaction"), actionProperty:button.formAction, methodAttribute:button.getAttribute("formmethod")}
});

Что должно получиться

GetAttribute показывает записанное переопределение или null, а URL-свойства могут показывать абсолютное разрешённое представление. Эти значения объясняют разметку, но окончательный запрос лучше проверить отдельно.

Граница применения и частая ошибка

Не вычисляйте эффективный адрес простым выбором любого непустого DOM-свойства кнопки: свойства имеют свои значения по умолчанию. Submit-обработчик может перехватить отправку. Для настоящего результата учитывайте инициатор, валидацию и работу скриптов.

Самостоятельная проверка

Добавьте formaction, затем удалите его и сравните таблицу. Повторите с formmethod. На безопасном тестовом endpoint выполните отправку каждой кнопкой и запишите фактические URL и метод.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.