Au lieu d'un bouton d'envoi, j'ai un lien:
<form>
<a href="#"> submit </a>
</form>
Puis-je le faire soumettre le formulaire quand il est cliqué?
Le meilleur moyen consiste à insérer une balise d'entrée appropriée:
<input type="submit" value="submit" />
<form id="form-id">
<button id="your-id">submit</button>
</form>
var form = document.getElementById("form-id");
document.getElementById("your-id").addEventListener("click", function () {
form.submit();
});
Placez ce dernier code JavaScript par un événement DOMContentLoaded
(choisissez uniquement load
pour compatibilité ascendante ) si vous ne l'avez pas déjà fait:
window.addEventListener("DOMContentLoaded", function () {
var form = document.... // copy the last code block!
});
Ajoutez un attribut onclick
au lien et un id
à la fiche:
<form id="form-id">
<a href="#" onclick="document.getElementById('form-id').submit();"> submit </a>
</form>
Quelle que soit la méthode choisie, vous devez éventuellement appeler formObject.submit()
(où formObject
est l'objet DOM de la balise <form>
).
Vous devez également lier un tel gestionnaire d'événements, qui appelle formObject.submit()
, afin qu'il soit 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.
// 1. Acquire a reference to our <form>.
// This can also be done by setting <form name="blub">:
// var form = document.forms.blub;
var form = document.getElementById("form-id");
// 2. Get a reference to our preferred element (link/button, see below) and
// add an event listener for the "click" event.
document.getElementById("your-id").addEventListener("click", function () {
form.submit();
});
Non recommandé: Insérer du code JavaScript intégré. Il y a plusieurs raisons pour lesquelles cette technique n'est pas recommandée. Un argument majeur est que vous mélangez le balisage (HTML) avec des scripts (JS). Le code devient inorganisé et plutôt incontrôlable.
<a href="#" onclick="document.getElementById('form-id').submit();">submit</a>
<button onclick="document.getElementById('form-id').submit();">submit</button>
Nous arrivons maintenant au point où vous devez choisir l'élément d'interface utilisateur qui déclenche l'appel à submit ().
Un bouton
<button>submit</button>
Un lien
<a href="#">submit</a>
Appliquez les techniques susmentionnées afin d’ajouter un écouteur d’événement.
Si vous utilisez jQuery et que vous avez besoin d’une solution en ligne, cela fonctionnera très bien.
<a href="#" onclick="$(this).closest('form').submit();">submit form</a>
En outre, vous voudrez peut-être remplacer
<a href="#">text</a>
avec
<a href="javascript:void(0);">text</a>
de sorte que l'utilisateur ne fait pas défiler vers le haut de votre page en cliquant sur le lien.
Vous pouvez donner des identifiants au formulaire et au lien, puis vous abonner à l'événement onclick
du lien et à submit
le formulaire:
<form id="myform" action="" method="POST">
<a href="#" id="mylink"> submit </a>
</form>
puis:
window.onload = function() {
document.getElementById('mylink').onclick = function() {
document.getElementById('myform').submit();
return false;
};
};
Je vous recommanderais d'utiliser un bouton d'envoi pour soumettre des formulaires, car il respecte la sémantique du balisage et fonctionnera même pour les utilisateurs dont le javascript est désactivé.
HTML & CSS - Pas de solution Javascript
Faites en sorte que votre bouton apparaisse comme un lien Bootstrap
HTML:
<form>
<button class="btn-link">Submit</button>
</form>
CSS:
.btn-link {
background: none;
border: none;
padding: 0px;
color: #3097D1;
font: inherit;
}
.btn-link:hover {
color: #216a94;
text-decoration: underline;
}
document.getElementById("theForm").submit();
Cela fonctionne parfaitement dans mon cas.
vous pouvez l'utiliser aussi,
function submitForm()
{
document.getElementById("theForm").submit();
}
Définissez "theForm" comme identifiant de formulaire. C'est fait.
cela fonctionne bien sans aucune fonction spéciale nécessaire. Beaucoup plus facile d'écrire avec php aussi. <input onclick="this.form.submit()"/>
voici la meilleure solution à votre question: dans le formulaire, vous avez le code suivant:
<li><a href="#">Singup</a></li>
<button type="submit" id="haha"></button>
dans le fichier CSS, faites ceci:
button{
display: none;
}
dans JS vous faites ceci:
$("a").click(function(){
$("button").trigger("click");
})
Voilà.