50 votes

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

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

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

Le code Jquery que j'utilise pour cela est le suivant.

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

140voto

xdazz Points 85907

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

Cela va définir une propriété submit à la HTMLFormElement donc le 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 de jQuery .submit() appellera la méthode .submit() sur l'élément dom original, donc l'erreur se produira.

28voto

ainokna Points 656

xdazz a bien expliqué le problème.

Vous pouvez utiliser un soumettre de HTMLFormElement pour contourner un problème :

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

6voto

Alex Reynolds Points 1931

Si vous avez un bouton ou une entrée avec le nom submit ou id submit, 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X