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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 245 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

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
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
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...
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 ...
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);
Afficher les 7 commentaires

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.