Ну, для меня это новый.
Поскольку ваша форма имеет именованный элемент с name="submit"
, ссылка на этот элемент заменяет функцию HTMLFormElement.prototype.submit()
.
Из документации ...
Именованные входы добавляются в экземпляр формы их владельца в качестве свойств и могут перезаписывать собственные свойства, если они имеют одинаковое имя (например,форма с входным именем action
будет иметь свое свойство action
, возвращающее этот вход вместо action
атрибута формы в формате.)
jQuery пытается выполнить эту функцию при программной отправке формыс чем-то вроде
if (typeof element.submit === 'function') {
element.submit()
}
Но в вашем случае element.submit
- это HTMLInputElement
.
Быстрое и простое решение, переименуйте ваш элемент submit или какчаще встречается в однокнопочных формах, просто удалите атрибут name
.
Если вы должны оставить кнопку отправки с именем "submit" кажется, это работает
function submitForm(form) {
// note, "form" is already a jQuery object
console.log(form.attr("method"));
HTMLFormElement.prototype.submit.call(form[0])
}