Désactiver un bouton submit après envoi du formulaire

5/5 (7 avis)

Snippet vu 9 067 fois - Téléchargée 17 fois

Contenu du snippet

Ce code vous permet d'éviter de cliquer plus d'une fois sur un bouton submit, cela permet d'éviter les lignes de plus dans la base de donnée.

Source / Exemple :


function valider(){
	
	var elt = document.getElementById("valider");
	
	elt.value = "veuillez patienter...";
	elt.style.border = "1px solid white";
	elt.style.backgroundColor = "#CCCCCC";
	elt.disabled = "true";
}

<input type="submit" value="Valider" name="valider" id="valider" onclick="javascript:valider()"/>

A voir également

Ajouter un commentaire

Commentaires

patricklane
Messages postés
5
Date d'inscription
lundi 1 octobre 2007
Statut
Membre
Dernière intervention
31 mai 2008
-
Lorsque j'emploie ce code, le formulaire n'est plus envoyé.
Peut on me dire où est mon erreur ?
Merci d'avance
zen69
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1 -
J'ai pas testé du tout... mais ce pourrait-il que ceci règle le probleme de la fonction obsolète...

current_item.addEventListener("click", remListener, false);

function remListener(event) {
callback(event);
this.removeEventListener('click',remListener.caller,false);
}

Deplus je crois que une combinaison des deux solutions proposé est l'idéal, car avec obj.disabled = "true"; le bouton ne "renfonce" plus lors du clique...
:P
cs_hornetbzz
Messages postés
60
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2011
-
@LDD: merci beaucoup pour l'info même si... damned, j'étais tout content de cette fonction, ça m'arrange pas cette histoire ;-) Mais a priori en première lecture, cela dépend de l'usage de cet argument. Affaire à suivre...
lddsoft
Messages postés
19
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
16 mai 2011
-
@HORNETBZZ

OK, mais il me semble avoir lu quelque part que "arguments.callee" était devenu obsolète depuis JavaScript 1.4 ...
cs_hornetbzz
Messages postés
60
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2011
-
C'est très bien pour les débutants dans le sens où le code est simple et illustratif.

Ceci dit, +1 sur le commentaire de LDDSoft et j'ajouterai qu'il serait bien d'aller plus loin en désactivant un bouton "tout court" par le DOM, pas seulement le submit d'un formulaire.

Il y a un très bon tuto ici (http://www.howtocreate.co.uk/tutorials/javascript/domevents) , illustrant ceci par exemple (cas de NS) :

current_item.addEventListener("click", function (event) {
callback(event);
this.removeEventListener('click',arguments.callee,false);
}
, false);

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.