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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 326 fois - Téléchargée 20 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
5 févr. 2011 à 12:16
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
19 mars 2010 à 18:45
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 59 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 3 janvier 2011
15 mars 2010 à 12:18
@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
15 mars 2010 à 11:57
@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 59 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 3 janvier 2011
15 mars 2010 à 10:17
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.