Подтвердить что ты не робот

Свойство 'submit' объекта # <HTMLFormElement> не является функцией

Может кто-нибудь объяснить мне, что означает эта ошибка? Я был бы очень признателен за любую помощь с этим.

<form class="form" id="form" action="/mailer.php" method="post">

Код JQuery, который я использую для этого, это.

$('#form').submit();  
4b9b3361

Ответ 1

Проверьте форму, чтобы увидеть, есть ли HTMLInputElement с идентификатором или именем submit.

Это установит свойство submit в HTMLFormElement, поэтому функция submit, которая находится в прототипе элемента формы, не может быть выполнена.

Пример:

<form class="form" id="form" action="/mailer.php" method="post">
    ​<input type="button" name="submit" value="go"/>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

JS:

​console.log($("#form")[0].submit)​;​  // will be the button element, not the submit function.

jQuery .submit() метод вызовет .submit() в исходном элементе dom, поэтому произойдет ошибка.

Ответ 2

xdazz хорошо объяснил проблему.

Вы можете использовать собственный метод submit HTMLFormElement для решения проблемы:

HTMLFormElement.prototype.submit.call($('#form')[0]);

Ответ 3

Если у вас есть кнопка или ввод с именем submit или id submit, я видел ошибки в IE. Убедитесь, что ваши входы правильно названы. Здесь статья об этом http://bugs.jquery.com/ticket/1414