probleme avec controle de formulaire

probleme avec controle de formulaire - HTML/CSS - Programmation

Marsh Posté le 08-01-2005 à 10:58:38    

Bonjours
j'aimerais bien savoir comment on fait pour verifier si toutes les zone de text d'un formulaire sont remplis a l'aide d'un javascript
 
et si toute ces zones sont remplis alors un bouton de type submit peut devenir actif
 
voici mon code qui ne marche pas :
// fonction javascript
function tester()  
{  
   var flag = false;  
   if(document.getElementsByName('nomcreateur').length == 0  
   && document.getElementsByName('prenomcreateur').length == 0  
   && document.getElementsByName('mailcreateur').length == 0
   && document.getElementsByName('logincreateur').length == 0
   && document.getElementsByName('pwdcreateur').length == 0
   && document.getElementsByName('cpwdcreateur').length == 0)
   {flag = true;}  
 
   
   if(flag)
   {document.question.valider.disabled = false;}
   else
   {document.question.valider.disabled = true;}  
}
 
 
 
mon code html
 
<form method="post" action="validation.php" name="question">
    <div id="formulaire-haut">
      <table class="bord0">
        <tr>
          <td class="width">Nom :</td>
          <td><input type="text" name="nomcreateur" size="20" onClick="tester();"/></td>
        </tr>
        <tr>
          <td>Prénom :</td>
          <td><input type="text" name="prenomcreateur" size="20" onClick="tester();"/></td>
        </tr>
        <tr>
          <td>Mail :</td>
          <td><input type="text" name="mailcreateur" size="20" onClick="tester();"/></td>
        </tr>
        </table>
      </div>
       
      <div id="formulaire-bas">
        <table border="0">
        <tr>
          <td class="width">Login :</td>
          <td><input type="text" name="logincreateur" size="10" onClick="tester();"/></td>
        </tr>
        <tr>
          <td>Mot de passe :</td>
          <td><input type="password" name="pwdcreateur" size="10" onClick="tester();"/></td>
        </tr>
        <tr>
          <td>Confirmation :</td>
          <td><input type="password" name="cpwdcreateur" size="10" onClick="tester();"/></td>
        </tr>
      </table>
    </div>
     
     
    <div id="placement-bouton-envoyer">
      <input type="submit" value="Envoyer" name="valider" disabled />
      </form>
    </div>  
 
 
 
merci pour l'aide

Reply

Marsh Posté le 08-01-2005 à 10:58:38   

Reply

Marsh Posté le 08-01-2005 à 11:10:46    

déjà plutot que des && dans la fonction tester, c'est des ||.
Ensuite je ne connaissais pas la méthode getElementByName mais getElementById, mais bon peut-être qu'elle existe.

Reply

Marsh Posté le 08-01-2005 à 11:21:55    

sa marche pas
En fait le bouton Envoyer ne s'active jamais : il reste toujours desabled meme si toutes les zones de textes sont remplies

Reply

Marsh Posté le 08-01-2005 à 11:24:00    

c'est pas l'évènement onclick mais l'évènement onchange non?

Reply

Marsh Posté le 08-01-2005 à 11:26:59    

non sa marche toujours pas
et je ne sais vraiment pas d'ou vient l'erreur
en tout cas merci beaucoup pour ton aide , elle m'est tres utile

Reply

Marsh Posté le 08-01-2005 à 11:45:01    

Dangereux tout ça. Déjà le code est pas valide, si t'utilises un tableau pour le formulaire, met au moins des <label> pour associer un champs et son intitulé. Ensuite pour ceux qui ont javascript désactivé, ils auront un beau bouton submit désactivé, et ne pourront jamais envoyer le formulaire :/

Reply

Marsh Posté le 08-01-2005 à 11:45:19    

Utilise FireFox et le javascript console qui permet de débugger.
Avec ça j'ai pu corriger un peu le code, qui fonctionne. en utilisant getElementById à la place de getElementByName ça marche (mais j'ai du rajouter les id="" pour chaque input. De même j'ai remplacé les document.envoyer.valider.disable par document.getElementById("valider" ).disable =...
J'ai du inverser la ligne mettant true avec la ligne mettant false...

Reply

Marsh Posté le 08-01-2005 à 11:47:58    

pas bete se que tu dit FlorentG
mais je ne connais pas d'autres solutions
donc si tu en a, n'hesite pas a me les dire
 
merci ppour l'aide

Reply

Marsh Posté le 08-01-2005 à 11:50:22    

Ben tu met dans ta balise <form> un onsubmit="return tester()". Modifie ta fonction pour qu'elle fasse un 'return true;' quand le formulaire est valide, et un 'return false' quand c'est pas valide. Comme ça, si c'est pas valide, le formulaire ne sera pas envoyé. Et quand c'est pas valide, avant de faire un return, tu peux afficher une boîte de dialogue genre 'Veuillez remplir tous les champs' :)
 
N'oublie pas aussi de faire une validation côté serveur ;)

Reply

Marsh Posté le 08-01-2005 à 11:52:25    

j'ai pas compri comment tu fesais avec getElementById()
(tu lui passe quoi comme parametre dans le script ?)
si tu met id="" dans chaque input

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed