Aller au contenu | Aller au menu | Aller à la recherche
Lorsqu'on utilise des formulaires, on est souvent confronté au problème de la soumission multiple. Pour éviter cela il suffit d'utiliser la méthode JavaScript suivante :
function soumettreUneSeuleFois(formulaire) {
if (formulaire.elements['submit'] != null) {
if (formulaire.elements['submit'].disabled) {
return false;
}
formulaire.elements['submit'].disabled = true;
formulaire.elements['submit'].value = 'Veuillez patienter';
}
return true;
}
Quant au code HTML du formulaire, il sera le suivant :
<form action="traitement.php" method="post"
onsubmit="return soumettreUneSeuleFois(this);">
<fieldset>
<input name="champ" type="text" />
<input type="submit" name="submit" value="soumettre" />
</fieldset>
</form>
Ainsi lorsque le formulaire sera soumis, que ça soit par l'appui sur la touché Entrée ou bien par un clic sur le bouton de soumission, ce dernier sera désactivé et son texte sera remplacé par un message d'attente.
jeudi 30 décembre 2004 à 13h55 -
Développement Web
Aucun rétrolien pour le moment.
Les rétroliens pour ce billet sont fermés.
![]()
Sympa le script
solo
le jeudi 30 décembre 2004 à 22h52
![]()
mais si le javascript est desactiv? ?
Bon moi et mes betises on part au P?rou.
![]()
ZIKoS> Dans ce cas le formulaire a un fonctionnement normal. C'est justement l'int?r?t de ce type d'impl?mentation. Cela am?liore l'exp?rience utilisateur comme disent nos amis de la communication si le JavaScript est pr?sent et se d?grade parfaitement bien dans le cas contraire.
JMF
le mardi 4 janvier 2005 à 10h11
![]()
Attention ! La methode est traitre.
Si la fonction soumettreUneSeuleFois() desactive le bouton "submit" lors de la validation du formulaire, la variable $_REQUEST['submit'] / $_POST['submit'] n'existera plus ! Donc, ca n'aura plus aucun sens de faire un test sur cette valeur. Par exemple sur des formulaires plus complexes (comme le formulaire de commentaire de ce blog).
Il faut y penser. Je me suis fait surprendre sur mon blog...
Solution : utiliser un champ hidden (par exemple "copy_submit") qui servira de temoin en cas de besoin
dash
le mercredi 26 janvier 2005 à 23h07
![]()
Hello,
Important, quelqu'un sait s'il existe une solution pour que le bouton submit une fois d?sactiv? (disabled='true') soit r?activ? ?
J'ai essay? avec disabled='false' mais ?a ne fonctionne pas...
Merci beaucoup
Les commentaires pour ce billet sont fermés.
© 2003-2008 Jean-Marc Fontaine - Tous droits réservés
XHTML - CSS - DotClear - Technorati
Les billets de ce blog sont sous licence Creative Commons
Eric Daspet le jeudi 30 décembre 2004 à 19h05