This.form.submit () ne fonctionne pas après avoir cliqué sur l'élément div dans la forme

J'essayais de tester la soumission des formulaires en utilisant des clics de souris, mais le formulaire ne semble pas se soumettre avec vanilla javascript.

J'utilise ce balisage et ce code simple:

<form name="form" id="price" action="" method="post"> <div class="category" name="price" value="50 dollars" onClick="this.form.submit();" >price</div> </form> <?php echo $_POST['price']; ?> 

Je peux soumettre le formulaire avec Jquery, mais je ne comprends pas pourquoi this.form.submit() ne fonctionne pas avec vanilla javascript? J'utilise Chrome pour tester cela.

Un div n'est pas un élément de formulaire. Il n'y a pas de this.form .

Vous pouvez toujours faire document.forms.form.submit() ( .form puisque vous avez name="form" )

Votre code pourrait fonctionner si vous avez essayé quelque chose comme ceci:

 onClick="document.forms["price"].submit();" 

this dans votre cas fait référence à la balise div , pas à l'objet document qui contient la référence au formulaire lui-même.

Utilisez le code suivant si votre nom de formulaire est "filtre-formulaire"

 onclick="return document.forms.filter-form.submit();" 

Un div n'est pas un élément de formulaire (donc aucune propriété .form ) ni une valeur. Je pense que vous vouliez <input> au lieu de <div> .

C'est une question plus ancienne, mais cela devrait fonctionner

 onclick="this.parentNode.form.submit()"