begin process at 2012 05 30 03:09:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Validation sur 2 champs spécifiques


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Validation sur 2 champs spécifiques

vendredi 17 novembre 2006 à 18:14:38 | Validation sur 2 champs spécifiques

lavm01

Bonjour,

J'aimerais savoir comment faire et avoir un exemple en javascript (je suis assez nouveau dans le domaine de faire des sites) pour valider des cases à cocher en fonction d'un menu déroulant. Je m'explique:

J'ai un formulaire qui demande le nom, prénom etc.. ensuite j'ai un petit menu déroulant (valeur de 4 à 7) et à côté j'ai 7 petite cases à cocher, dans un premier temps l'utilisateur choisi dans le menu déroulant une valeur et en fonction de cette valeur coche les cases qu'il veut mais il ne peut en cocher que 4. Pas une, deux, trois, quatre ou cinq mais seulement 4.

Voici un des exemples: l'utilisateur choisi la valeur 4 il devra cocher 4 cases compris entre 1 et 4 parmis les 7 cases à cocher. Il coche les cases 1,2,3,4
                                   l'utilisateur choisi la valeur 5 il devra cocher 4 cases compris entre 1 et 5 parmis les 7 cases à cocher. Il coche les cases 1,2,4,5
                                  l'utilisateur choisi la valeur 6 il devra cocher 4 cases compris entre 1 et 6 parmis les 7 cases à cocher. Il coche les cases 2,3,4,6
                                 l'utilisateur choisi la valeur 7 il devra cocher 4 cases compris entre 1 et 7 parmis les 7 cases à cocher. Il coche les cases 1,2,3,7

Exemple de ce qu'il ne peut pas faire:

l'utilisateur choisi la valeur 5 il devra cocher 4 cases compris entre 1 et 5 parmis les 7 cases à cocher. Il ne peut pas cocher les cases 1,2,3,4 puisqu'il à choisi la valeur 5.
Et ainsi de suite....j'ai 8 menus déroulants spécifique (avec chacun leur 7 cases à cocher)

Merci beaucoup de votre aide.
vendredi 17 novembre 2006 à 18:18:57 | Re : Validation sur 2 champs spécifiques

lavm01

Aussi peut-être avoir une alerte quand la personne se trompe.

Merci encore.
vendredi 17 novembre 2006 à 21:20:13 | Re : Validation sur 2 champs spécifiques

rubiks10

Membre Club
salut

euh... je ne comprends pas du tout ton exemple... pourquoi en choisissant la valeur 5 il ne peut pas cocher 1,2,3 et 4 ???

-- The Rubik's Man --
vendredi 17 novembre 2006 à 22:46:10 | Re : Validation sur 2 champs spécifiques

lavm01

Peut-être que je me suis mal exprimé, ce site porte sur les seéries de hockey. Pourquoi en choisissant la valeur 5 il ne peut pas cocher 1,2,3 et 4 ??? parce que:

1. l'utilisateur choisi son équipe
2. choisi le nombre de partie (le menu déroulant)
3. choisi quelle partie l'équipe va gagner

Donc comme les séries sont des 4 de 7 (c'est pourquoi j'ai 7 cases à cocher). Donc en résumé si l'utilisateur choisi Montréal gagnant en 6 parties et gagne les parties 1,2,4,6

C'est pourquoi il ne pas choisir "gagne les parties 1,2,3,4" puisqu'il  à choisi que Montréal gagne en 6 parties et pour remporter le 4 de 7 il faut qu'il gagne 4 parties.
S'il gagne 4 parties de suite alors la prédiction aurait été Montréal gagne en 4 parties et gagne les parties 1,2,3,4

Je ne sais pas si c'est plus claire comme ça

Merci à l'avance.
samedi 18 novembre 2006 à 02:32:55 | Re : Validation sur 2 champs spécifiques

rubiks10

Membre Club
Ok là c'est plus clair

Donc en fait si j'ai bien compris lorsque on choisit une valeur entre 4 et 7 dans le menu déroulant alors le checkbox qui a pour numéro la valeur choisie est obligatoirement coché ?? déja ca simplifie pas mal le code.

Ben j'attends ta réponse puis ensuite si j'ai le temps je te ferai le code car il n'y a rien de compliqué

-- The Rubik's Man --
samedi 18 novembre 2006 à 04:04:03 | Re : Validation sur 2 champs spécifiques

rubiks10

Membre Club
Encore moi....

Bon j'ai fait ton code.

Je me suis bien sur permis de rajouter des petites fonctions... lol
En fat j'ai rajouter le fait que le dernier checkbox est automatiquement coché et ne peux etre décoché.
Puis j'ai aussi rajouter le fait que lorsque on choisit en 4 parties alors les 4 checkbox sont automatiquement cochés et ne peuvent être décochés
Puis j'ai encore ajouté le fait que c'est lors des changements du menu déroulant que les checkbox sont crées... je m'explique : au départ aucun checkbox sont dans la page et si tu cliques sur 5 alors cela créer 5 checkbox... etc...

Voila tu n'as plus qu'à tester et adapter le tout pour ton système ( j'ai ici fais un exemple avec seulement 3 lignes mais tu peux faire un copier coller d'une ligne de la table pour rajouter des menus déroulant sans oublier de modifier les id respectif en incrémentant l'index)

voila le code :

<html>
 <head>
  <script type="text/javascript">
   function maj_checkbox(id,value) {
    var targetEl = document.getElementById(id+"_check");
    targetEl.innerHTML = '';
    if (value == -1) {
     targetEl.innerHTML = 'Choisissez un nombre de parties';
     return;
    }
    
    for(var i=1;i<=value;i++) {
     var checked = value == 4 ? "checked" : (i == value ? "checked" : "");
     var tempID = id+"_check_";
     targetEl.innerHTML += "Partie "+i+" <input name="+tempID+i+" id="+tempID+i+" type=\"checkbox\" "+checked+" onclick=\"return checkClick(this,'"+tempID+"',"+value+","+i+")\"><br>";
    }
   }
   
   function checkClick(el,tempID,value,index) {
    if (value == 4 || index == value) return false;
   
    if (!el.checked) return true;
    var numberChecked = 0;
    
    for (var i=1;i<=value;i++) {
     if (document.getElementById(tempID+i).checked)  numberChecked++;
    }
    
    if (numberChecked <= 4) return true;
    else return false;
   }
  </script>
 </head>
 <body>
  <form>
   <table align="center" width="50%">
    <tr>
     <td valign="middle">
      <select name="match1" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match1_check">Choisissez un nombre de parties</td>
    </tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
     <td valign="middle">
      <select name="match2" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match2_check">Choisissez un nombre de parties</td>
    </tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
     <td valign="middle">
      <select name="match3" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match3_check">Choisissez un nombre de parties</td>
    </tr>
   </table>
  </form>
 </body>
</html>

bonne prog

@+

-- The Rubik's Man --
samedi 18 novembre 2006 à 05:48:12 | Re : Validation sur 2 champs spécifiques

lavm01

Merci bien,
Je vais le tester d'ici demain et je te redonne des nouvelles.

merci encore, je suis certain que ça va marcher.
samedi 18 novembre 2006 à 16:01:35 | Re : Validation sur 2 champs spécifiques

lavm01

Merci pour le script, ça fonctionne à merveille mais il y a juste 2 petites choses:

1. Quand l'utilisateur a choisi le nombre de parties dans le menu déroulant, là tu fais fais afficher les cases à cocher mais j'aimerais les avoirs à l'horizontal (un à côté de l'autre) pas à la vertical.

2. Lorsque les cases à cocher apparaissent (je sais que la dernière partie est toujours cocher et c'est parfait) et que le nombre de partie est plus que 4, l'utilisateur peut quand même en cocher moins de 4 cases comment faire pour dire à l'utilisateur "tu as cocher seulement 3 cases il t'en manque une ou deux (selon le cas)"

Merci beaucoup The Rubik's Man

Si tu as des questions sur le language SAS,  je suis développeur SAS depuis plus de 20 ans. Il faut dire que je fais seulement du SAS (ou presque), c'est pourquoi je suis nouveau dans le domaine des scripts.

Merci encore de me répondre.
samedi 18 novembre 2006 à 16:42:02 | Re : Validation sur 2 champs spécifiques

rubiks10

Membre Club
Oui donc pour les avoir a l'horizontal tu enleves le " <br> " a la fin de la ligne générée par javascript *
(cf." targetEl.innerHTML += "Partie ........... <br> ")

Sinon oui c'est vrai j'ai oublier de faire la vérification du nombre de cases cochées, mais le problème est que je ne sais pas trop comment tu vas utiliser ton système...
Est-ce que l'utilisateur valide ensuite un formulaire ? ( je suppose que oui mais on sait jamais...)
Bon je vais te faire ca tout de suite (ca prend que 2 min ) et je te poste le code

-- The Rubik's Man --
samedi 18 novembre 2006 à 17:42:31 | Re : Validation sur 2 champs spécifiques

rubiks10

Membre Club

Voila c'est fait donc j'ai résolu le fait que tu voulais les checkbox de facon horizontale

Donc en cliquant sur le bouton valider cela vérifie automatiquement tout puis j'ai fais la fonction de vérification de facon à ce qu'elle s'adapte toute seule au nombre d'élement ( par exemple dans mon exemple j'ai inséré que 3 modules et toi tu en as besoin de 8 ) donc quand tu vas rajouter les 5 autres tu n'auras pas à modifier cette fonction... voilà

D'ailleurs n'oublie pas lorsque tu vas rajouter les 5 autres modules de modifier pour chacun les id et name qui leurs correspondent en incrémentant pour chacun le chiffre les identifiant

voila le code final :

<html>
 <head>
  <script type="text/javascript">
   function maj_checkbox(id,value) {
    var targetEl = document.getElementById(id+"_check");
    targetEl.innerHTML = '';
    if (value == -1) {
     targetEl.innerHTML = 'Choisissez un nombre de parties';
     return;
    }
    
    for(var i=1;i<=value;i++) {
     var checked = value == 4 ? "checked" : (i == value ? "checked" : "");
     var tempID = id+"_check_";
     targetEl.innerHTML += "Partie "+i+" <input name="+tempID+i+" id="+tempID+i+" type=\"checkbox\" "+checked+" onclick=\"return checkClick(this,'"+tempID+"',"+value+","+i+")\"> ";
    }
   }
   
   function checkClick(el,tempID,value,index) {
    if (value == 4 || index == value) return false;
   
    if (!el.checked) return true;
    var numberChecked = 0;
    
    for (var i=1;i<=value;i++) {
     if (document.getElementById(tempID+i).checked)  numberChecked++;
    }
    
    if (numberChecked <= 4) return true;
    else return false;
   }
   
   function verifForm(el) {
    var i = 1, j = 1, checked = 0, check = null;
    while (document.getElementById(el.name+i)) {
     while (check = document.getElementById(el.name+i+'_check_'+j)) {
      if (check.checked) checked++;
      j++;
     }
     if (j == 1) {
      alert("Vous n'avez pas sélectionné un nombre de parties pour le match "+i);
      return;
     }
     else if (checked != 4) {
      var s = checked != 1 ? 's'  : '';
      if (checked == 0) alert("Vous avez coché aucune case pour le match "+i);
      else alert("Vous n'avez coché que "+checked+" case"+s+" pour le match "+i);
      return;
     }
     i++;j = 1;checked = 0;
    }
    el.form.submit();
   }
  </script>
 </head>
 <body>
  <form action="#">
   <table align="center" width="75%">
    <tr>
     <td>Match 1 :</td>
     <td>
      <select id="match1" name="match1" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match1_check">Choisissez un nombre de parties</td>
    </tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
     <td>Match 2 :</td>
     <td>
      <select id="match2" name="match2" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match2_check">Choisissez un nombre de parties</td>
    </tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
     <td>Match 3 :</td>
     <td>
      <select id="match3" name="match3" onchange="maj_checkbox(this.name,this.value)">
       <option value="-1">Nbr parties</option>
       <option value="4">4 parties</option>
       <option value="5">5 parties</option>
       <option value="6">6 parties</option>
       <option value="7">7 parties</option>
      </select>
     </td>
     <td id="match3_check">Choisissez un nombre de parties</td>
    </tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
     <td colspan=3 align="center">
      <input type="button" name="match" value="Valider" onclick="verifForm(this)">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>

-- The Rubik's Man --


1 2

Cette discussion est classée dans : valeur, utilisateur, cocher, cases, choisi


Répondre à ce message

Sujets en rapport avec ce message

Verifier une valeur du combobox [ par chris81 ] bonjour,j'ai un petit pb, je souhaite verifier si dans mon combobox quelque chose a ete choisi. Si rien n'est choisi le combobox reste vide,j'ai creer rendre une (des) cases à cocher inaccessibles... [ par jerome218 ] Bonjour, Je cherche à rendre certaines cases à cocher d'un formulaire innacessibles (incochable) tant que le visiteurs n'aura pas coché une case prior Case à cocher [ par sebalex ] Salut à tous,J'aimerais faire un truc simple pour vous mais très rude pour moi.J'ai 4 cases à cocher1. inscription2. société3. polo4. initiationJe sou Cases à cocher [ par lavache13 ] Je suis en train de faire un formulaire avec des cases à cocher et j'aimerai savoir ce que retourne une case à cocher comme valeur. J'ai essayé checke formulaire avec cases a cocher [ par chmette ] Bonjour! j'ai besoin d'un petit peu d'aide pour une application qui pourtant m'a l'air d'etre simple, mais je galere un peu !!! Pour l'instant, j'ai r cocher des checkbox par des liens [ par tekyo ] Salut à tous, je suis débutant et je n'arrive pas à faire ne sorte que mes cases à cocher se coche aussi par l'intermédiaire d'un lien. Pour une et s Un tableau plein de cases à cocher [ par azmeuk ] Alors voila ce que j'ai:< cases à cocher et affichage [ par Aghianna ] Bonjour !je "dynamise un site statique" et je rencontre (pour commencer!!) le problème suivant :dans un formulaire, j'ai des cases à cocher qui lorsqu Récupérer l'adresse du fichier choisi par l'utilisateur [ par enstone ] Bonjour,J'ai trouvé sur le web un MP3 player en flash. Il fonctionne comme ceci: il faut taper dans le navigateur: mp3player.swf?son=adresseduson.mp3J problème de case à cocher [ par ticam85 ] bonjour à tous!j'ai des groupes et pour chaque groupe une liste de cases à cocher (ou cases radio) (correspondant à des permissions) seulement ces cas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales