TUTORIELS 
Confirmer l'envoi d'un formulaire
Une routine permettant de demander à l'utilisateur s'il souhaite vraiment envoyer un formulaire incomplet.  (Décembre 2003)
 
Forums
* Discutez en sur les forums
"Comment peut-on faire en javascript pour demander une confirmation (si un champ n'est pas coché) à un visiteur avant l'envoi d'un formulaire ?"

Un problème, une interrogation ? Adressez-vous à la rédaction de JDNet Développeurs

Formalisons : nous avons besoin d'une routine qui, si l'utilisateur valide le formulaire sans avoir rempli tous les champs, lui demande s'il souhaite vraiment envoyer des informations incomplètes. S'il confirme, nous envoyons le formulaire, sinon, nous lui rendons la main...

Nous avons deux possibilités pour afficher cette requête : soit nous ouvrons une nouvelle fenêtre contenant un formulaire HTML avec deux boutons ("Confirmer" et "Retour au formulaire", par exemple), soit nous choisissons d'utiliser la fonction JavaScript confirm().
L'évènement à utiliser peut-être onSubmit() ou onClick().
Nous avons choisis ici de passer par confirm() et onSubmit().

Ce code devrait être facilement adaptable à d'autres situations (cases à cocher, menu déroulant...).


Le code
<html>
  <head>
    <script>

function confirmSubmit()
  {
  var manquant = false;
  for (var i = 0; i < document.formulaire.elements.length; i++)
    {
    if ( (document.formulaire.elements[i].type == 'text') && (document.formulaire.elements[i].value == '') )
      {
      manquant = true;
      }
    }
  if (manquant)
    {
    choix = confirm("oui ou non?");
    if (choix == true)
      {
      document.formulaire.submit();
      }
    else
      {
      return false;
      }
    }
  }

    </script>
  </head>
  <body>
    <form name="formulaire" method="get" action="bidule.php" onSubmit="return confirmSubmit();">
Nom :
<input type="text" name="nom"><br>
Prénom :
<input type="text" name="prenom"><br>
Âge :
<input type="text" name="age"><br>
<input type="submit" name="Submit" value="Envoyer">
    </form>
  </body>
</html>

 
[ Xavier BorderieJDNet
 
Accueil | Haut de page