web-dev-qa-db-ja.com

オブジェクト#<HTMLFormElement>のプロパティ 'submit'は関数ではありません

誰もこのエラーの意味を説明できますか?私はこれに関するあらゆる種類の助けに感謝します。

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

私が使用しているJqueryコードはこれです。

$('#form').submit();  
50

フォームをチェックして、IDを持つHTMLInputElementまたは名前がsubmitであるかどうかを確認します。

これにより、プロパティsubmitHTMLFormElementに設定されるため、フォーム要素のプロトタイプにある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()メソッドは、元のdom要素で.submit()を呼び出すため、エラーが発生します。

139
xdazz

xdazzは問題をうまく説明しました。

HTMLFormElementのネイティブsubmitメソッドを使用して、問題を回避できます。

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

Submitまたはid submitという名前のボタンまたは入力がある場合、IEでエラーが発生しています。入力に正しい名前が付けられていることを確認してください。これについての記事があります http://bugs.jquery.com/ticket/1414

6
Alex Reynolds