Accueil > Forum > > > > Validation sur 2 champs spécifiques
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
|
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
|
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
|
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> </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> </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
|
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
|
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> </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> </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> </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 --
|
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|