c'.forme.submit() ne fonctionne pas après avoir cliqué sur l'élément div en forme
J'étais en train de tester la soumission d'un formulaire à l'aide de clics de souris, mais la forme ne semble pas présenter à la vanille, avec javascript.
Je suis en utilisant ce simple balisage et le code:
<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 envoyer le formulaire avec Jquery, mais je ne comprends pas pourquoi this.form.submit()
n'est pas de travail à la vanille, avec du javascript? Je suis en utilisant google Chrome pour tester cela.
- Balise Div ne peut pas l'information d'attribut "value"
- Ma réponse devrait fonctionner avec tous les navigateurs principaux. S'il vous plaît sélectionner la bonne réponse.
Vous devez vous connecter pour publier un commentaire.
Un
div
n'est pas un élément de formulaire. Il n'y a pas dethis.form
pour elle.Vous pouvez toujours faire
document.forms.form.submit()
(.form
puisque vous avezname="form"
)div
au lieu deinput
input
de toute façon, comme il est construit pour être un élément de formulaire.parentNode
signifie que votre code ne fonctionnera plus si le balisage des changements. Si vous êtes en train de faire quelque chose de trivial comme enveloppant le bouton envoyer dans une autre div, vous pouvez vérifier si la présentation est cassé, mais vous ne pouvez pas s'attendre à ce que le changement à la pause fonctionnalités. Cette solution ne se briser si le nom de la forme change, et je dirais son nom est plus intrinsèquement liée à ses fonctionnalités. Vous ne changez pas sans approfondie des tests de fonctionnalité.Votre code pourrait fonctionner si vous avez essayé quelque chose comme ceci:
this
dans votre cas se réfère effectivement à ladiv
tag, pas de l'objet document qui contient la référence à la forme elle-même.Utilisez le code suivant si votre nom est "filtre-forme"
Un
div
n'est pas un élément de formulaire (donc pas de.form
de la propriété) et il n'a pas une valeur. Je pense que vous avez voulu<input>
au lieu de<div>
.C'est une vieille question, mais cela devrait fonctionner