Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bloquer l'envoi d'un formulaire

tant qu'il n'est pas complètement remplit

Sujet résolu
    2 mai 2006 à 22:59:46

    Bonjour,

    J'aimerais en effet activer le bouton pour valider mon formulaire que si tous les champs obligatoires sont remplis. Je pense que cela est possible en javascript, mais n'y connaissant fichtre rien à ce langage, je suis incapable de le faire.

    Quelqu'un saurait-il me montrer comment faire sur cet exemple :

    <form method="post">
      <label>Pseudo : <input type="text" name="pseudo" /></label>
      <label>Password : <input type="password" name="mot_de_passe" /></label>

      <input type="submit" value="Envoyer" />
    </form>


    Tout en mettant une brève explication à côté, pour que je puisse l'adapter à mes scripts ? :)

    Un grand merci par avance,
    Fnor
    • Partager sur Facebook
    • Partager sur Twitter
      3 mai 2006 à 1:41:40

      Fnor Bonjour
      avec du php tu peux le faire avec isset
      isset sert a vérifier que la variable existe déjà c'est aps mal.
      puis aprés tu vérifie si elle est aps égale a NUL.

      if(isset($ma_variable))<--!si ma variable existe alors je fais-->
          {
            if($ma_variable != NUL)<--!si ma variable contient donc quelque chose (différent de nul)-->
               {
               <--! ici je fais mes opérations et voilà-->
               }
          }


      normalement c'est cela tu dois bien sur adapter avec des && et autre.
      Voilà j'espére que c'était cela
      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2006 à 11:58:31

        Citation : Taediosus

        Fnor Bonjour
        avec du php tu peux le faire avec isset
        isset sert a vérifier que la variable existe déjà c'est aps mal.
        puis aprés tu vérifie si elle est aps égale a NUL.


        if(isset($ma_variable))<--!si ma variable existe alors je fais-->
            {
              if($ma_variable != NUL)<--!si ma variable contient donc quelque chose (différent de nul)-->
                 {
                 <--! ici je fais mes opérations et voilà-->
                 }
            }



        normalement c'est cela tu dois bien sur adapter avec des && et autre.
        Voilà j'espére que c'était cela


        Alors attention il y a comme une nuance :D , il demande de bloquer le formulaire si tout les champs ne sont pas remplis, donc l'empêcher de le poster, ta technique avec PHP sera valable seulement si il poste le formulaire, donc sa ne répond pas à ses exigences ;) .

        Pour faire ce genre de chose rien de vaut un peu de JS (je parit que la majorité l'aurais deviné :lol: ), mais quand on si connait pas c'est dure hein :D , mais j'ai peut-être la solution il me faut juste quelques minutes pour coder sa :p .
        • Partager sur Facebook
        • Partager sur Twitter
          3 mai 2006 à 12:00:02

          Mais n'y a-t-il pas moyen de simplement bloquer le bouton ?

          Comme par exemple lorsqu'on installe des logiciels, le bouton "suivant" est bloqué jusqu'à ce que l'on accepte le règlement ^^

          Je sais que ce n'est pas sur le web, mais personne ne peut me dire si c'est possible et, mieux, montrer comment ? :euh:
          • Partager sur Facebook
          • Partager sur Twitter
            3 mai 2006 à 12:36:24

            Ba ouai on peut désactivé le button mais bon faut encore pousser le JS et là j'ai pas le courage de le faire, je me suis déjà retourné le cerveau pour te faire ce JS tout bête :lol: .

            Alors j'explique son fonctionnement, quand on demande à poster le formulaire la fonction verif_champ est exécuté, elle prend en paramètre l'id du formulaire, elle vérifie si les inputs de type text ne sont pas vide, si ils sont touts remplis ont peut poster le formulaire, si un seul champ reste vide, le formulaire est pas posté ;) .
            Je suis content de se JS, sa fait gagner pas mal de temps part apport à mon ancienne méthode pour vérfier avant de poster.

            Voici la fonction JS puis un exemple de fonctionnement.
            function verif_champ(id_form) {
                    var post = true;
                    var formulaire =  document.getElementById(id_form);
                    var inputs = formulaire.getElementsByTagName('input');
                    for(i = 0; i < inputs.length; i++) {
                            if(inputs[i].getAttribute('type') == 'text') {
                                    if(inputs[i].value == '') {
                                            post = false;
                                    }
                            }
                    }
                    return post;
            }

            Le petit exemple pour montrer comment sa fonctionne.
            <!-- On met le Javascript, entre les balises <head> (là c'est un exemple je rappelle :D -->
            <script type="text/javascript">
            <!--
            function verif_champ(id_form) {
                    var post = true;
                    var formulaire =  document.getElementById(id_form);
                    var inputs = formulaire.getElementsByTagName('input');
                    for(i = 0; i < inputs.length; i++) {
                            if(inputs[i].getAttribute('type') == 'text') {
                                    if(inputs[i].value == '') {
                                            post = false;
                                    }
                            }
                    }
                    return post;
            }
            -->

            </script>
            <form method="post" action="#" id="nom" onsubmit="return verif_champ(this.id);">
            <input type="text" />
            <input type="text" />
            <input type="text" />
            <input type="submit" value="Envoyer" />
            </form>

            Voilà alors j'ai appliqué les manipulations nécéssaire pour que sa fonctionne :
            • Attribuer un ID au formulaire
            • Avec l'évènement onSubmit dans la balise <form> on appelle la fonction avec l'ID du formulaire

            Voilà j'éspère que sa t'aidera, le seul hic c'est que si tu autorise des champs facultatif, c'est-à-dire que tu autorise à rester vide ba la ils devront obligatoirement être remplis, ce que tu peux faire à la rigueur c'est mettre par exemple ce signe dans le champ "-" (tiret) pour signifier qu'il est vide est dans la page PHP qui traite le formulaire tu met ceci :
            if($_POST['nom_du_champ'] == '-') { $_POST['nom_du_champ'] = ''; }

            N'oublie pas de mettre le topic en résolu si tu pense qu'il est résolu ;) .
            • Partager sur Facebook
            • Partager sur Twitter
              3 mai 2006 à 14:34:53

              Merci beaucoup :)

              Le code marche et grâce aux explications, j'ai même pu l'adapter pour les type "password", ce qui est bien utile pour un formulaire d'inscription :lol: (bien que 75% du travaille avait déjà été fait :D )
              • Partager sur Facebook
              • Partager sur Twitter
                3 mai 2006 à 14:38:51

                Citation : Fnor

                Merci beaucoup :)

                Le code marche et grâce aux explications, j'ai même pu l'adapter pour les type "password", ce qui est bien utile pour un formulaire d'inscription :lol: (bien que 75% du travaille avait déjà été fait :D )


                Au l'autre :p on rajoute à rajouter : juste || inputs[i].getAttribute('type') == 'password' :lol: .

                Ba tant mieu content d'avoir résolut ton problème, j'éspère que ce JS servira à d'autres ;) .
                • Partager sur Facebook
                • Partager sur Twitter

                Bloquer l'envoi d'un formulaire

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown