[HTML][JavaScript] Problème d'accès à l'état d'une checkbox via JS

Problème d'accès à l'état d'une checkbox via JS [HTML][JavaScript] - HTML/CSS - Programmation

Marsh Posté le 24-07-2008 à 16:57:59    

Hello tout le monde !
 
Voici mon probleme, j'ai un formulaire HTML avec des input de type "checkbox" possedant pour attribut name "sel_art[]" comme sur la version simplifié de mon code ci-dessous :
 
 

<form id="list_article" method="post" action="confirm_delete_article.php">
 <input type="checkbox" name="checkAllBox" onclick="checkAll();" />
 <input type="checkbox" name="sel_art[]" value="1" />
 <input type="checkbox" name="sel_art[]" value="2" />
 <input type="checkbox" name="sel_art[]" value="3" />
 <input type="checkbox" name="sel_art[]" value="4" />
</form>


 
 
J'aimerais que lorsque je coche le premier checkbox (ayant pour non "checkAllBox" ), toutes les autres cases se cochent elles aussi. Je fais ca avec du JavaScript, à l'aide de la fonction suivante :
 

Code :
  1. function checkAll()
  2. {
  3. if(document.getElementById('list_article').checkAllBox.checked)
  4. {
  5.  for (i=0; i<document.getElementById('list_article').sel_art.length; i++)
  6.  {
  7.   document.getElementById('list_article').sel_art[i].checked = true;
  8.  }
  9. } else if(!document.getElementById('list_article').checkAllBox.checked)
  10. {
  11.  for (i=0; i<document.getElementById('list_article').sel_art.length; i++)
  12.  {
  13.   document.getElementById('list_article').sel_art[i].checked = false;
  14.  }
  15. }
  16. }


 
Or cette fonction ne marche pas ! Car mes checkbox ont pour nom "sel_art[]" et non "sel_art" !
J'ai essayé d'autre syntaxe, comme :  

Code :
  1. document.getElementById('list_article').sel_art[][i].checked


mais ca ne donne rien de mieux...
 
Y aurait il quelqu'un qui sache comment résoudre mon petit problème ?
 
Je rajoute tout de même que mes checkbox doivent avoir ces "[]" dans leur nom car je veux récupérer leur valeurs sous forme de tableau avec PHP lorsque le formulaire sera envoyé.
 
Merci d'avance !


Message édité par dave260888 le 24-07-2008 à 17:01:01
Reply

Marsh Posté le 24-07-2008 à 16:57:59   

Reply

Marsh Posté le 24-07-2008 à 17:44:34    

j'ai trouvé la solution ^^
 

Code :
  1. function checkAll()
  2. {
  3. if(document.getElementById('list_article').checkAllBox.checked)
  4. {
  5.  for(i=0 ; i<document.getElementsByName('sel_art[]').length; i++)
  6.  {
  7.   document.getElementsByName('sel_art[]')[i].checked = true;
  8.  }
  9. } else if(!document.getElementById('list_article').checkAllBox.checked)
  10. {
  11.  for(i=0 ; i<document.getElementsByName('sel_art[]').length; i++)
  12.  {
  13.   document.getElementsByName('sel_art[]')[i].checked = false;
  14.  }
  15. }
  16. }

Reply

Sujets relatifs:

Leave a Replay

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