Свойство 'submit' объекта # <HTMLFormElement> не является функцией
Может кто-нибудь объяснить мне, что означает эта ошибка? Я был бы очень признателен за любую помощь с этим.
<form class="form" id="form" action="/mailer.php" method="post">
Код JQuery, который я использую для этого, это.
$('#form').submit();
Ответы
Ответ 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