Est-il un meilleur jQuery solution à cette question.forme.submit();?
Je veux déclencher l'événement submit du formulaire de l'élément courant est en. Une méthode que je fonctionne parfois est:
this.form.submit();
Je me demandais si il y a une meilleure solution, éventuellement à l'aide de jQuery, comme je ne suis pas sûr à 100% méthode fonctionne dans tous les navigateurs.
Edit:
La situation que j'ai est, comme suit:
<form method="get">
<p><label>Field Label
<select onchange="this.form.submit();">
<option value="blah">Blah</option>
....
</select></label>
</p>
</form>
Je veux être en mesure de soumettre le formulaire sur le changement de la <select>
.
Ce que je suis à la recherche d'une solution qui fonctionne sur n'importe quel champ de n'importe quelle forme sans connaître l'id ou le nom sur le formulaire. $('form:first')
et $('form')
ne fonctionnera pas parce que la forme pourrait être la troisième sur la page. Aussi, je suis à l'aide de jQuery sur le site déjà, afin de l'utiliser un peu de jQuery n'est pas une grosse affaire.
Alors, est-il un moyen d'avoir jQuery récupérer la forme de l'entrée/sélectionner/textarea est dans?
- La méthode post a toujours travaillé pour moi.
- Oui, pourquoi ne serait-ce pas.forme.submit() de travail?
Vous devez vous connecter pour publier un commentaire.
Je pense que ce que vous recherchez est quelque chose comme ceci:
Par exemple, pour gérer l'événement onchange, vous avez ceci:
Si, pour une raison quelconque vous n'êtes pas à l'aide de jQuery 1.3 ou supérieur, vous pouvez appeler
parents
au lieu declosest
.closest
fonction) est sorti une semaine après que j'ai répondu à la question.C'est probablement votre meilleur pari. Surtout si vous n'êtes pas déjà à l'aide de jQuery dans votre projet, il n'est pas nécessaire de l'ajouter (ou de toute autre bibliothèque JS) juste pour ce but.
Vous pouvez toujours JQuery-ize votre formulaire.soumettre, mais il peut se contenter d'appeler la même chose:
Vous pouvez également joindre fonctions de l'événement submit, mais c'est un autre concept.
Similaire à Matthieu réponse, je viens de trouver que vous pouvez effectuer les opérations suivantes:
Faux: Le problème avec l'aide du parent fonctionnalité est que le champ doit être immédiatement à l'intérieur de la forme de travail (pas à l'intérieur de la tds, les étiquettes, etc).
Je me tiens à corriger: parents (avec un s) fonctionne aussi. Thxs Paolo pour le souligné.
parents("form")
est parfaitement acceptable, bien que je ne sais pas comment elle est efficace par rapport àclosest("form")
.J'ai trouvé que l'utilisation de jQuery, la meilleure solution est
L'aide de cette instruction jquery plugins (par exemple jquery forme de plugin) fonctionne correctement et jquery DOM traversant les frais généraux sont réduits au minimum.
Votre question dans un peu confus dans ce que vous n'expliquez pas ce que vous entendez par "élément courant".
Si vous avez plusieurs formulaires sur une page avec toutes sortes d'éléments d'entrée et un bouton de type "submit", puis la touche "entrée" après avoir rempli l'un de ses champs de déclencher la soumission de ce formulaire. Vous n'avez pas besoin de Javascript il.
Mais si vous avez plusieurs boutons "soumettre" sur un formulaire, et pas d'autres entrées (par exemple, "modifier la ligne" et/ou "supprimer la ligne" boutons dans le tableau), puis la ligne que vous avez posté, pourrait être le moyen de le faire.
D'une autre façon (pas de Javascript nécessaire) pourrait être de donner des valeurs différentes à tous vos boutons (qui sont de type "submit"). Comme ceci:
Lorsque vous cliquez sur un bouton uniquement le formulaire contenant le bouton sera soumis, et seule la valeur de la touche hit sera envoyé (ainsi que d'autres valeurs d'entrée).
Puis sur le serveur que vous venez de lire la valeur de la variable "myaction" et de décider quoi faire.
En JQuery, vous pouvez appeler
Ne sais pas si c'est beaucoup mieux. Je pense que la forme.submit(); il est assez universel.