Comment griser un bouton dans un formulaire? PHP

Signaler
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009
-
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009
-
Bonjour,

J'ai créé un formulaire, qui doit etre rempli par les utilisateurs
de mon site, Cependant, je voudrais que le bouton soit grisé par
défault, et que lorsque tous les champs soit rempli, il se dégrise de
façon à ce qu'on puisse cliquer sur le bouton.

Merci de votre aide

[ 'Tu trouveras toujours plus fort que toi' ]

11 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Il te faut faire une fonction Javascript du genre :

function control () {
   /* contrôle sur tous les champs du formulaire. Là ça dépend des données de ton formulaire et de ce que tu souhaites contrôler */
   si OK => document.getElementById('sub').disabled = false;
   si pas OK => document.getElementById('sub').disabled = true;
}

Le bouton de validation :

Le mieux reste d'appeler la fonction à intervalles réguliers (1,2 sec).

Cordialement,

Kohntark-
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009

J'ai fait ca mais ca ne marche toujours pas :

            <script type="text/javascript">

            function verif1()
            {
            //veriication que le login est entré
            if(document.validation.login.value=="")
            {
            document.getElementById('connexion').disabled = false;
            }
            if(document.validation.login.value!="")
            {
            document.getElementById('connexion').disabled = true;
            }
            }

            </script>

Cordialement, Vin's

[ 'Tu trouveras toujours plus fort que toi' ]
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Salut,

donc ton id est connect

or tu fais
document.getElementById('connexion').disabled = false;

tu devrais faire
document.getElementById('connect').disabled = false;

Normalement la console d'erreur de FireFox (ou autre sous IE) devrait de donner l'erreur.
A plus.
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009

Ca marche merci. Mias c'est dommage car quand je tape toujours dans la zone de texte elle se dégrise pas tout de suite, il faut que je clique d'abord à côté.. Si tu connais la solution, se serait cool. Merci

[ 'Tu trouveras toujours plus fort que toi' ]
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Excuse pour la lenteur, je suis au boulot. Avec, onFocus ou onSelect dés que l'utilisateur cliqueras dans la zone texte ton bouton se dégrisera mais même s'il n'a rien tapé. Le mieux serait onKeyUp ou onKeyPress ou onKeyDown.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Ne connaissant pas ton formulaire je proposais de lancer la fonction a intervals réguliers pour éviter de gérer les différents événements liés aux types. Si tu n'as que 2, 3 champs il vaut mieux gérer unitairement. Par contre le contrôle que tu fais (comme le dis implicitement gr43) ne sert à rien car il est beaucoup trop simple. En somme il n'a aucun intérêt. Je pense que tu devrais contrôler les impératifs que tu t'ai fixés avant de rendre actif le bonton (nombre de caractères, etc ...)

Kohntark -
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009

D'accord, mais ce formulaire, c'est le plus simple. J'en ai beaucoup d'autre de formulaire dans mon site, et il y en a, qui en on même une particularité, c'est qu'il se dégrise, pas quand TOUS les champs sont pleins. Ca dépend. Je vous envoi le formulaire pour que vous comprenez mieux.

    <form action="ajoutinter.php" method='post'><!-- formulaire -->
        <!-- tableau sans bordure pour organiser et tout aligner -->
               ----
Type d'intervention*  :,
                     <select style="width: 320" name="type"><!-- Liste deroulante, permettant de choisir les types -->
                    <option>< Type ></option>
                        <?php
                            while ($ligne2=mysql_fetch_array($resultat))
                            {
                        ?>
                        <option>
                            <?php
                                echo ''.$ligne['Libelle_type'].'';  
                            ?>
                        </option>
                        <?php
                            }
                        ?>   
                       
                    </select>
               ,    

           
            ----

                Libelle d'intervention*  :,
                , <!-- zone de texte -->
           
            ----

                Dur&eacute;e (en minutes)*  :,
                , <!-- zone de texte n'autorisant uniquement la saisie de chiffres-->
           
            ----

                Date d&eacute;but*  :,
                <?php include ("fonctioncalendrier.php");?>,
               
           
            ----

                Date fin :,
                <?php include ("fonctioncalendrier.php");?>,
               
           
           

       

   

    <center>
   
    <!--  bouton ajouter une intervention -->
   
    </center>
        </form>   

Voila et j'aimerais que le bouton valider soit griser par défault et qu'il se dégrise lorsque  tous les champs soit remplis à l'exception du dernier input qui a pour name="date_fin" .. Ce champ n'est pas obligatoire en fait.

Merci
[ 'Tu trouveras toujours plus fort que toi' ]
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Salut, tu peux faire un onKeyPress sur chaque element que tu veux obligatoire avec un test adéquate (nombre, string, tel, mail...) et  dés que le champ correspond à tes exigences tu stocke si le champs est correct dans une variable globale. Si tu as 3 champs obligatoires, tu n'affiche ton bouton que si t'as variable globale possède les 3 id des champs obligatoire (chaque fonction des champs obligatoires appel une fonction générique qui vérifie la valeur de la var globale et affiche le bouton valider si =ok). Il faut par contre supprimer de ta variable globale l'id de ton champ suite à une modif d'un champ correct qui ne le serait plus. Attention cependant à vérifier également en php la valeur des champs car le javascript n'est pas une solution de controle fiable et puis si ton utilisateur n'accepte pas le js, il ne pourra pas valider ton formulaire implicetement tout du moins.
Je suis pas sûr d'avoir été bien claire....
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009

Arf, jte remercie beaucoup, mais je vois ce que tu me dit de faire, mais jarrive pas à traduire ça en code PHP .. Ben tant pis, merci quand même. C'est aussi compliqué que ça !!!!???

Cordialement

[ 'Tu trouveras toujours plus fort que toi' ]
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Non, c'est du js. Tu devrais pouvoir trouver des classes ou fonction js existante sur le web mais en générale on stocke les erreurs des différents champs et lors du click sur le bouton on affiche la cause des erreurs avec une modal (alert ou personnalisée, car plus sympa estétiquement) puis on retraite côté php.
Messages postés
104
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
20 février 2009

Putinnn j'y comprends riennn mdrrr ... lol non ben c'est pas grave. Jte remercie beaucoup quand même..

[ 'Tu trouveras toujours plus fort que toi' ]