[JS] "check/uncheck all" avec un [ ]

"check/uncheck all" avec un [ ] [JS] - HTML/CSS - Programmation

Marsh Posté le 14-11-2003 à 08:46:51    

Je sais que le titre n'est pas forcement tres explicite mais voila le pb :
 
J'ai une fonction en JS qui me permet de cocher/decocher toutes les checkboxes d'un formulaire =>
 

Code :
  1. <script language="JavaScript">
  2.     var checkflag = "false";
  3.     function check(field) {
  4.         if (checkflag == "false" ) {
  5.             for (i = 0; i < field.length; i++) {
  6.                 field[i].checked = true;}
  7.             checkflag = "true";
  8.             return "Uncheck all";
  9.         }
  10.         else {
  11.             for (i = 0; i < field.length; i++) {
  12.                 field[i].checked = false; }
  13.             checkflag = "false";
  14.             return "Check all";
  15.         }
  16.     }
  17.     </script>


 
Cette fonction marche tres bien si je l'utilise comme ceci =>
 

Code :
  1. ...
  2. <input class="checkall" type="button" value="Check all" onClick="this.value=check(validate.id)">
  3. ...


Code :
  1. ...
  2. <td class="validate"><input class="validate" type="checkbox" name="id" value="1" /></td>
  3. <td class="validate"><input class="validate" type="checkbox" name="id" value="2" /></td>
  4. <td class="validate"><input class="validate" type="checkbox" name="id" value="3" /></td>
  5. ...


Le probleme c'est que cela ne fonctionne plus si je remplace id par id[]. :/

Reply

Marsh Posté le 14-11-2003 à 08:46:51   

Reply

Marsh Posté le 14-11-2003 à 09:03:33    

Je sais pas si ça peut interesser qqun mais j'ai fini par trouver la reponse. Il suffit d'utiliser un element =>
 

Code :
  1. <input class="checkall" type="button" value="Check all" onClick="this.value=check(validate.elements['id[]'])">


Message édité par impulse le 14-11-2003 à 09:05:43
Reply

Marsh Posté le 14-11-2003 à 09:52:31    

Salut,
 
Juste pour dire j'aurais plutôt fait un truc de ce style la moi.
 

Code :
  1. function CheckAll(Act)
  2. {
  3. var IsCheck = Act=="Check all"?true:false;
  4. var oColl = document.getElementsByName("id" );
  5. for (i=0;i<oColl.length;i++)
  6.  oColl.item(i).checked = IsCheck;
  7. return IsCheck?"Uncheck All":"Check all";
  8. }


 
Avec toujours ton bouton de Check / Uncheck. Et tes checkbox qui ont name="id".
 

Code :
  1. <input type="button" value="Check all" onclick="this.value=CheckAll(this.value);" />


 
Tout se base en fait sur la value de ton bouton, ca évite ta variable checkflag qui se balade.
Voili, en esperant que ca t'apporte quelque chose  :)

Reply

Marsh Posté le 14-11-2003 à 10:46:06    

Zirtukob a écrit :

Salut,
 
Juste pour dire j'aurais plutôt fait un truc de ce style la moi.
 

Code :
  1. function CheckAll(Act)
  2. {
  3. var IsCheck = Act=="Check all"?true:false;
  4. var oColl = document.getElementsByName("id" );
  5. for (i=0;i<oColl.length;i++)
  6.  oColl.item(i).checked = IsCheck;
  7. return IsCheck?"Uncheck All":"Check all";
  8. }


 
Avec toujours ton bouton de Check / Uncheck. Et tes checkbox qui ont name="id".
 

Code :
  1. <input type="button" value="Check all" onclick="this.value=CheckAll(this.value);" />


 
Tout se base en fait sur la value de ton bouton, ca évite ta variable checkflag qui se balade.
Voili, en esperant que ca t'apporte quelque chose  :)


 
En fait j'ai recup ce bout de code sur un site. Il fait ce que je veux donc ça me va, je vais pas m'amuser a chercher plus loin pour un bout de code JS. Mais je te remercie qd meme pour ta remarque. :)

Reply

Sujets relatifs:

Leave a Replay

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