Элемент HTMLFormElement: метод requestSubmit()
Метод HTMLFormElement requestSubmit() запрашивает отправку формы с использованием определённой кнопки отправки.
Синтаксис
requestSubmit() requestSubmit(submitter)
Параметры
submitterНеобязательно-
Кнопка отправки, которая является членом формы.
Если
submitterуказываетform*атрибуты, они переопределят поведение отправки формы (например,formmethod="POST").Если у
submitterестьnameатрибут или это<input type="image">, его данные будут включены в отправку формы (например,btnName=btnValue).Если вы опустите параметр
submitter, в качестве кнопки отправки будет использоваться сам элемент формы.
Возвращаемое значение
None (undefined).
Исключения
TypeError-
Выбрасывается, если указанная
submitterне является кнопкой отправки. -
NotFoundErrorDOMException -
Выбрасывается, если указанная
submitterне является членом формы, к которой был вызван методrequestSubmit(). Кнопка отправки должна быть потомком элемента формы или иметь атрибутform, ссылающийся на форму.
Примечания по использованию
Очевидный вопрос: зачем этот метод, если у нас есть метод submit() с незапамятных времён?
Ответ прост. Метод submit() отправляет форму, но только это. requestSubmit(), с другой стороны, действует так, как будто была нажата кнопка отправки. Содержимое формы проверяется, и форма отправляется только в случае успешной проверки. После отправки формы генерируется событие submit и возвращается в объект формы.
Примеры
В примере ниже форма отправляется путём попытки отправить запрос с использованием requestSubmit(), если он доступен. Если найдена кнопка отправки с идентификатором main-submit, она используется для отправки формы. В противном случае форма отправляется без параметра submitter, то есть отправляется непосредственно самой формой.
Если requestSubmit() недоступен, этот код использует метод submit() формы в качестве резервного варианта.
let myForm = document.querySelector("form");
let submitButton = myForm.querySelector("#main-submit");
if (myForm.requestSubmit) {
if (submitButton) {
myForm.requestSubmit(submitButton);
} else {
myForm.requestSubmit();
}
} else {
myForm.submit();
}
Спецификации
| Спецификация |
|---|
| HTML # dom-form-requestsubmit-dev |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
requestSubmit |
76 | 79 | 75 | 63 | 16 | 76 | 79 | 54 | 16 | 12.0 | 76 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit