Есть ли способ отправить HTML-форму с помощью JavaScript, который гарантированно будет работать во всех ситуациях?
Я уточняю. Общим подходом является:
formElement.submit()
Это все хорошо и хорошо, за исключением одного. Поля формы доступны как атрибуты formElement
, поэтому, если есть поле с именем или id "text1", к нему можно получить доступ как formElement.text1
.
Это означает, что если элементы называются "submit" (будь то его имя или его id), то formElement.submit()
не будет работать. Это связано с тем, что formElement.submit
не будет методом формы, а поле с этим именем. К сожалению, довольно распространено, что кнопки отправки имеют "отправить" имя или идентификатор.
Два примера, чтобы проиллюстрировать мою мысль. Во-первых, следующее НЕ будет работать, потому что элемент формы имеет имя "submit" :
<form name="example" id="example" action="/">
<button type="button" name="submit" onclick="document.example.submit(); return false;">Submit</button>
</form>
При этом будет работать следующее. Единственное различие заключается в том, что я удалил имя "submit" из формы:
<form name="example" id="example" action="/">
<button type="button" onclick="document.example.submit(); return false;">Submit</button>
</form>
Итак, есть ли другой способ отправить HTML-форму с помощью JavaScript?