Au lieu d'un bouton d'envoi, j'ai un lien:
<form>
<a href="#"> submit </a>
</form>
Puis-je lui faire soumettre le formulaire quand on clique dessus?
javascript
html
forms
hyperlink
sablonneux
la source
la source
target="_blank"
ne semble pas fonctionner.<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Réponses:
Le meilleur moyen
Le meilleur moyen est d'insérer une balise d'entrée appropriée:
La meilleure façon JS
Entourez ce dernier code JavaScript par un
DOMContentLoaded
événement (choisissez uniquementload
pour la compatibilité descendante ) si vous ne l'avez pas déjà fait:Le moyen facile et déconseillé (la première réponse)
Ajoutez un
onclick
attribut au lien et unid
au formulaire:Tous les moyens
Quelle que soit la façon dont vous choisissez, vous avez
formObject.submit()
finalement appel (oùformObject
est l'objet DOM de la<form>
balise).Vous devez également lier un tel gestionnaire d'événements, qui appelle
formObject.submit()
, donc il est appelé lorsque l'utilisateur clique sur un lien ou un bouton spécifique. Il y a deux manières:Recommandé: liez un écouteur d'événement à l'objet DOM.
Non recommandé: insérez du JavaScript en ligne. Il y a plusieurs raisons pour lesquelles cette technique n'est pas recommandable. Un argument majeur est que vous mélangez le balisage (HTML) avec des scripts (JS). Le code devient inorganisé et plutôt impossible à maintenir.
Maintenant, nous arrivons au point où vous devez choisir l'élément d'interface utilisateur qui déclenche l'appel submit ().
Un bouton
Un lien
Appliquez les techniques mentionnées ci-dessus pour ajouter un écouteur d'événement.
la source
name="submit"
, lasubmit()
méthode de votre formulaire ne sera pas accessible.<input type="submit">
a une signification plus sémantique que, par exemple,<a href="#" onclick="...">
. Ceci est particulièrement important en ce qui concerne les lecteurs d'écran. Si vous devez utiliser ce dernier, je vous suggère d'utiliser ARIA .Si vous utilisez jQuery et avez besoin d'une solution en ligne, cela fonctionnerait très bien;
Vous voudrez peut-être également remplacer
avec
afin que l'utilisateur ne fasse pas défiler vers le haut de votre page en cliquant sur le lien.
la source
href="#"
puis sélectionner tous ces liens avec jquery et appelere.preventDefault()
leclick
gestionnaire d'événements pour que le navigateur ne défile pas.Vous pouvez donner au formulaire et au lien des identifiants puis vous abonner à l'
onclick
événement du lien etsubmit
du formulaire:puis:
Je vous recommande d'utiliser un bouton d'envoi pour soumettre des formulaires car il respecte la sémantique du balisage et cela fonctionnera même pour les utilisateurs avec javascript désactivé.
la source
HTML et CSS - Pas de solution Javascript
HTML:
CSS:
la source
cela fonctionne bien sans aucune fonction spéciale nécessaire. Beaucoup plus facile à écrire avec php également.
<input onclick="this.form.submit()"/>
la source
<input onclick="this.form.submit()"> Some Text</input>
la source
Cela fonctionne parfaitement dans mon cas.
vous pouvez l'utiliser en fonction comme,
Définissez "theForm" comme ID de formulaire. C'est fait.
la source
voici la meilleure solution à votre question: à l'intérieur du formulaire, vous avez ce code:
dans le fichier CSS, procédez comme suit:
dans JS, vous faites ceci:
Voilà.
la source