Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1165 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Javascript] Vérifier qu'au moins une case est cochée -n00b inside-

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Javascript] Vérifier qu'au moins une case est cochée -n00b inside-

n°1169773
*LighTninG​*
Posté le 04-08-2005 à 12:47:46  profilanswer
 

Bonjour à tous !
J'ai un petit problème avec une fonction javascript qui est censée me vérifier qu'au moins une checkbox est cochée dans un formulaire,, sachant que le nombre de checkbox est indéfini et varie de 1 à x... Je l'ai faite en cherchant à droite à gauche sur le net, et je ne sais vraiment pas ce qui peut clocher car c'est la première fois que j'utilise du javascript.
 

Code :
  1. function check_appli()
  2. {
  3. var i = 1;
  4. while(document.getElementById('appli_' + i))
  5. {
  6.  if(document.getElementById('appli_' + i).checked)
  7.   return true;
  8.  i++;
  9. }
  10. window.alert("Veuillez sélectionner au moins une application." );
  11. return false;
  12. }


 

Code :
  1. <form method="post" name="form1" onsubmit="return check_appli();" action="mainpage.php?page=9">
  2. <input type="checkbox" name="appli_id[]" id="appli_1" value="1" checked/>
  3. <input type="checkbox" name="appli_id[]" id="appli_2" value="2" checked/>
  4. <input type="checkbox" name="appli_id[]" id="appli_3" value="3" checked/>
  5. ...
  6. <input type="checkbox" name="appli_id[]" id="appli_x" value="x" checked/>
  7. <input type="submit" name="modifier" value="Modifier"/>
  8. </form>


 
Merci d'avance pour vos éclaircissements sur la question :)

mood
Publicité
Posté le 04-08-2005 à 12:47:46  profilanswer
 

n°1169802
xtof_83
Freeride Spirit
Posté le 04-08-2005 à 13:23:26  profilanswer
 

Ton truc marche chez moi.
 
euh...tu peux un peux plus nous en dire?

n°1169806
xtof_83
Freeride Spirit
Posté le 04-08-2005 à 13:32:11  profilanswer
 

lol.. j'aivais pas lu: tu est un newbe.
 
Donc ne me dis pas que tu as oublier de mettre le JS entre les balises:
<script></script>
 
???
 
Non tu n'aurais pas osé...
tiens copie colle ceci

Code :
  1. <script>
  2. function check_appli()
  3. {
  4. var i = 1;
  5. while(document.getElementById('appli_' + i))
  6. {
  7.  if(document.getElementById('appli_' + i).checked)
  8.   return true;
  9.  i++;
  10. }
  11. window.alert("Veuillez sélectionner au moins une application." );
  12. return false;
  13. }
  14. </script>
  15. <form method="post" name="form1" onsubmit="return check_appli();" action="mainpage.php">
  16. <input type="checkbox" name="appli_id[]" id="appli_1" value="1" checked/>
  17. <input type="checkbox" name="appli_id[]" id="appli_2" value="2" checked/>
  18. <input type="checkbox" name="appli_id[]" id="appli_3" value="3" checked/>
  19. <input type="submit" name="modifier" value="Modifier"/>
  20. </form>


Message édité par xtof_83 le 04-08-2005 à 13:33:44
n°1169825
gatsusat
Posté le 04-08-2005 à 13:52:56  profilanswer
 

ton code à l'air nickel, je ne vois que l'idée que tu aies oublié les balises <script>
 
au passage, ca se met dans le <head></head> les balises script, n'est-ce pas xtof_83

n°1169830
xtof_83
Freeride Spirit
Posté le 04-08-2005 à 13:58:04  profilanswer
 

Oui maître, gatsusat...
 
Erreur grossiére de ma part... :) :lol:

n°1169835
gatsusat
Posté le 04-08-2005 à 14:03:05  profilanswer
 

xtof_83 a écrit :

Oui maître, gatsusat...
 
Erreur grossiére de ma part... :) :lol:


Sinon ya ça mais c'est juste pour la démo
donc c'est un peu crade pour le HTML
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script>
  6. function check_appli()
  7.     {
  8.  var monform = document.getElementById("formulaire" );
  9.     var myCB = monform.getElementsByTagName("INPUT" )
  10.  for (var i=0; i<=myCB.length-1; i++)
  11.    if (myCB[i].type.toLowerCase()=="checkbox" )
  12.           if(myCB[i].checked) return true
  13.     window.alert("Veuillez sélectionner au moins une application." );
  14.     return false;
  15. }
  16. </script>
  17. </head>
  18. <body>
  19. <form method="post" name="form1" id="formulaire" onsubmit="return check_appli();" action="mainpage.php">
  20. <input type="checkbox" name="appli_id[]" value="1" checked/>
  21. <input type="checkbox" name="appli_id[]" value="2" checked/>
  22. <input type="checkbox" name="appli_id[]" value="3" checked/>
  23. <input type="submit" name="modifier" value="Modifier"/>
  24. </form>
  25. </body>
  26. </html>

n°1169838
xtof_83
Freeride Spirit
Posté le 04-08-2005 à 14:04:45  profilanswer
 

On va dire que tu ne t'ai pas embeté.

n°1169840
gatsusat
Posté le 04-08-2005 à 14:09:00  profilanswer
 

ca fait la meme taille et je fait un test plus
mais bon, là tu n'a pas besoin de gerer les id dans le formulaire.
 
le mieux serait de mettre tes checkbox dans un fieldset, et dans ce cas on fout un id sur le fieldset, et on peut enlever un test à mon code

n°1169886
*LighTninG​*
Posté le 04-08-2005 à 14:40:38  profilanswer
 

En effet, ca marche nickel ! Il va falloir que je vérifie ma page php parce que je n'ai toujours pas réussi à le faire marcher dessus...  Merci à tous en tout cas :)

n°1169889
FlorentG
Unité de Masse
Posté le 04-08-2005 à 14:43:42  profilanswer
 

Et s'il vous plaît, on note ça :

<script type="text/javascript">


On ne met jamais de script tout seul ! Faut toujours préciser quel type, hein ;)

mood
Publicité
Posté le 04-08-2005 à 14:43:42  profilanswer
 

n°1169892
*LighTninG​*
Posté le 04-08-2005 à 14:52:01  profilanswer
 

Verdict... yavait une parenthèse en trop qui trainait dans ma page :p Ca marche très bien maintenant :d


Message édité par *LighTninG* le 04-08-2005 à 14:52:39
n°1169906
xtof_83
Freeride Spirit
Posté le 04-08-2005 à 15:02:01  profilanswer
 

FlorentG a écrit :

Et s'il vous plaît, on note ça :

<script type="text/javascript">


On ne met jamais de script tout seul ! Faut toujours préciser quel type, hein ;)


 
Ah oui sa c'est vrai :jap:

n°1846032
damm
Posté le 02-02-2009 à 12:44:25  profilanswer
 

Bonjour,
 
Avec un form qui appelle : onSubmit="return verifSelection()"  
j'ai utilisé ce code JS pour vérifier mon "checkbox" de fin de formulaire et ça marche très bien seul :
 

Code :
  1. function verifSelection()
  2. {
  3. var i = 1;
  4. while(document.getElementById('appli_' + i))
  5. {
  6. if(document.getElementById('appli_' + i).checked)
  7. return true;
  8. i++;
  9. }
  10. window.alert("Veuillez accepter les conditions generales." );
  11. return false;
  12. }


 
 
J'ai aussi, dans la même fonction, une vérification des champs qui marche très bien seule :
 

Code :
  1. function verifSelection()
  2. {
  3. if (mail_form.champ1.value == "" ) {
  4. alert("Entrez votre nom" )
  5. return false
  6. } if (mail_form.champ2.value == "" ) {
  7. alert("Entrez votre prénom " )
  8. return false
  9. } if (mail_form.champ3.value == "" ) {
  10. alert("Entrez votre date de naissance" )
  11. return false
  12. } if (mail_form.champ5.value == "" ) {
  13. alert("Entrez votre adresse" )
  14. return false
  15. } if (mail_form.champ9.value == "choisissez" ) {
  16. alert("Choisissez au moins un cours" )
  17. return false
  18. } if (mail_form.champ15.value == "" ) {
  19. alert("veuillez accepter" )
  20. return false
  21.  
  22. }


 
 
Par-contre, plus rien ne réagit lorsque je fusionne les deux comme ça :
 
 

Code :
  1. function verifSelection()
  2. {
  3. var i = 1;
  4. while(document.getElementById('appli_' + i))
  5. {
  6. if(document.getElementById('appli_' + i).checked)
  7. return true;
  8. i++;
  9. }
  10. window.alert("Veuillez accepter les conditions generales." );
  11. return false;
  12. if (mail_form.champ1.value == "" ) {
  13. alert("Entrez votre nom" )
  14. return false
  15. } if (mail_form.champ2.value == "" ) {
  16. alert("Entrez votre prénom " )
  17. return false
  18. } if (mail_form.champ3.value == "" ) {
  19. alert("Entrez votre date de naissance" )
  20. return false
  21. } if (mail_form.champ5.value == "" ) {
  22. alert("Entrez votre adresse" )
  23. return false
  24. } if (mail_form.champ9.value == "choisissez" ) {
  25. alert("Choisissez au moins un cours" )
  26. return false
  27.  
  28. }


 
 
Une idée?  
 
Merci tout plein d'avance

n°1846843
GordonF_69
Posté le 03-02-2009 à 20:44:07  profilanswer
 

return false;  
 
 
en plein milieu ?? !!!
 
Return = quitte la fonction.

n°1847018
Bidem
Posté le 04-02-2009 à 11:40:38  profilanswer
 

Citation :

Code :
  1. function verifSelection()
  2. {
  3. var i = 1;
  4. while(document.getElementById('appli_' + i))
  5. {
  6. if(document.getElementById('appli_' + i).checked)
  7. return true;
  8. i++;
  9. }
  10. window.alert("Veuillez accepter les conditions generales." );
  11. return false;
  12. if (mail_form.champ1.value == "" ) {
  13. alert("Entrez votre nom" )
  14. return false
  15. } if (mail_form.champ2.value == "" ) {
  16. alert("Entrez votre prénom " )
  17. return false
  18. } if (mail_form.champ3.value == "" ) {
  19. alert("Entrez votre date de naissance" )
  20. return false
  21. } if (mail_form.champ5.value == "" ) {
  22. alert("Entrez votre adresse" )
  23. return false
  24. } if (mail_form.champ9.value == "choisissez" ) {
  25. alert("Choisissez au moins un cours" )
  26. return false
  27. }



 
Ce que ça fait :
 - Dans la 1ère boucle, on sort dès qu'on trouve une case cochée et donc on ne fait pas les tests sur les valeurs des champs,
 - après la 1ere boucle, on sort et donc on ne fait pas les tests sur les valeurs des champs
 
Une solution simple est de mettre le test des checkbox après les tests des valeurs


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Javascript] Vérifier qu'au moins une case est cochée -n00b inside-

 

Sujets relatifs
Pb calendrier XP javascriptprobleme de chaine de caractère ( photo inside)
Refresh d'une zone précise dans I.E. en javascript, possible ?Faire un group by sur un case ou un if
[JavaScript] Concaténer des chaines pour faire un nom de var. [Résolu]De l'interet des tables temporaires (benchmark inside)
verifier formulaire existe[javascript] executer un fichier
Le javascript évolution ?tester si les chanps sont vide en javascript
Plus de sujets relatifs à : [Javascript] Vérifier qu'au moins une case est cochée -n00b inside-


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR