La propriété 'soumettre' de l'objet # <HTMLFormElement> n'est pas une fonction

Quelqu'un peut-il m'expliquer ce que signifie cette erreur? J'apprécierais beaucoup pour toute aide.

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

Le code JQuery que j'utilise pour ça c'est ceci.

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

Vérifiez le formulaire pour voir s'il y a un HTMLInputElement avec un identifiant ou un nom est submit .

Cela définira une propriété de submit à HTMLFormElement , de sorte que la fonction de submit qui se trouve dans le prototype de l'élément de formulaire ne peut pas être exécutée.

Exemple:

 <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. 

La méthode .submit() de jQuery appellera le .submit() sur l'élément dom original, donc l'erreur se produira.

Xdazz a bien expliqué le problème.

Vous pouvez utiliser une méthode de soumission native de HTMLFormElement pour contourner un problème:

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

Si vous avez un bouton ou une entrée avec le soumission de nom ou l'envoi d'identifiant, j'ai vu des erreurs dans IE. Assurez-vous que vos entrées sont correctement nommées. Voici un article à ce sujet http://bugs.jquery.com/ticket/1414