Comment soumettre un formulaire avec JavaScript en cliquant sur un lien?
À la place d'un bouton "soumettre" j'ai un lien:
<form>
<a href="#"> submit </a>
</form>
Puis-je faire soumettre le formulaire lorsqu'il est cliqué?
- Je l'utilise pour intégrer complètement caché formulaire dans une page. Mais il y a des sauts de ligne avant et après le lien. Viennent-ils de l'élément de formulaire? Et je voudrais ouvrir le lien dans un nouvel onglet/page,
target="_blank"
ne semble pas fonctionner. - tl;dr
<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Vous devez vous connecter pour publier un commentaire.
Le meilleur moyen
La meilleure façon est d'insérer une entrée appropriée tag:
Le meilleur JS façon
Joindre le dernier code JavaScript par un
DOMContentLoaded
événement (uniquement choisirload
pour compatibilité descendante) si vous ne l'avez pas déjà fait:Le facile, pas recommandable (l'ancien réponse)
Ajouter un
onclick
attribut pour le lien et unid
de la forme:Toutes façons
Quelle que soit la manière que vous choisissez, vous avez un appel en
formObject.submit()
finalement (oùformObject
est l'objet DOM de la<form>
tag).Vous avez également de lier cette un gestionnaire d'événements, qui appelle
formObject.submit()
, de sorte qu'il est appelé lorsque l'utilisateur clique sur un lien ou un bouton. Il y a deux façons:Recommandé: Lier un écouteur d'événement à l'objet DOM.
Pas recommandé: Insérer le JavaScript en ligne. Il y a plusieurs raisons pourquoi cette technique n'est pas recommandable. L'un des principaux arguments est que vous mélangez de balisage (HTML) avec des scripts (JS). Le code devient désorganisée et plutôt difficile à maintenir.
Maintenant, nous arrivons à un point où vous devez décider de l'élément d'INTERFACE utilisateur qui déclenche le submit() de l'appel.
Un bouton
Un lien
Appliquer les techniques susmentionnées afin d'ajouter un écouteur d'événement.
name="submit"
, lesubmit()
méthode de votre formulaire ne sera pas accessible.<input type="submit">
a plus de sens sémantique que, disons,<a href="#" onclick="...">
. C'est surtout importante pour les lecteurs d'écran. Si vous devez utiliser ce dernier, je vous suggère de faire usage de ARIA.id="submit"
.. lesubmit()
méthode ne sera pas accessible.Si vous utilisez jQuery et aurait besoin d'une ligne de la solution, ce serait très bien;
Aussi, vous pouvez remplacer
avec
de sorte que l'utilisateur n'a pas de défilement vers le haut de votre page en cliquant sur le lien.
href="#"
puis sélectionnez tous les liens avec jquery et appele.preventDefault()
dans leclick
gestionnaire d'événements pour le navigateur ne prend pas de défilement.Vous pourriez donner la forme et le lien certains identifiants et puis abonnez-vous pour l'
onclick
cas de le lien etsubmit
la forme:et puis:
Je voudrais vous recommander à l'aide d'un bouton submit pour soumettre les formulaires qu'il respecte le balisage sémantique et il fonctionne même pour les utilisateurs ayant désactivé javascript.
HTML & CSS Sans Javascript Solution
HTML:
CSS:
cela fonctionne bien sans fonction spéciale nécessaire. Beaucoup plus facile d'écrire avec php.
<input onclick="this.form.submit()"/>
<input onclick="this.form.submit()"> Some Text</input>
Il fonctionne parfaitement dans mon cas.
vous pouvez l'utiliser dans la fonction aimez aussi,
Ensemble "theForm" comme ID du formulaire. C'est fait.
voici la meilleure solution à votre question:
à l'intérieur de la forme que vous avez ces code:
dans le fichier CSS, cela:
en JS pour ce faire:
Là vous allez.