Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cocher plusieurs checkbox

en une fois

Sujet résolu
    18 avril 2010 à 0:10:18

    Bonsoir !

    J'ai tenté un petit script qui me permet en cliquant sur un input checkbox d'en sélectionner plusieurs :

    <script>
    function selectall(cas,choix){
     var choix = document.monform.elements["choix[]"];
     {
      if(choix.length>0){
        if (cas.checked){
          for (var i=0; i<choix.length;i++){
            choix[i].checked=true
          }
        }
        else{
          for (var i=0; i<choix.length;i++){
            choix[i].checked=false
          }
        }
      }
      }
    }
    function selectalla(cas,choix){
     var choix = document.monform.elements["test[]"];
     {
      //test si on a plusieur ligne
      if(choix.length>0){
        if (cas.checked){
          for (var i=0; i<choix.length;i++){
            choix[i].checked=true
          }
        }
        else{
          for (var i=0; i<choix.length;i++){
            choix[i].checked=false
          }
        }
      }
      }
    }
    </script>
    


    <form name="monform">
    <input type="checkbox" name="all" onclick="selectall(document.monform.all,document.monform.choix)">
    <input type="checkbox" name="essai" onclick="selectalla(document.monform.essai,document.monform.test)">
    <input type="checkbox" name="choix[]" value="1">
    <input type="checkbox" name="choix[]" value="2">
    <input type="checkbox" name="choix[]" value="3">
    <input type="checkbox" name="choix[]" value="4">
    <input type="checkbox" name="test[]" value="5">
    <input type="checkbox" name="test[]" value="6">
    </form>
    


    Ce script fonctionne parfaitement :) Néanmoins je cherche à l'optimiser et je viens vous demander si cela est possible. En effet à l'heure actuelle, je dois créer à chaque fois une nouvelle fonction dès que je j'ajoute une nouvelle "liste" de checkbox à cocher (par exemple ici les checkbox ayant pour name"test[]").

    Je n'ai pas trouvé de solutions miracles pour faire en sorte à partir d'une unique fonction de configurer les checkbox "maîtres" sélectionnant un certains nombres de checkbox.

    Pensez-vous que cela soit possible ou bien dois-je me contenter de créer à chaque fois une fonction dès que je change le name="" de mes checkbox (c'est à dire une autre "liste" de checkbox)?

    Merci par avance !
    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2010 à 0:15:54


      <script type="text/javascript">
      function checkAllBox(ref, name) {
      	var form = ref;
      	
      	while (form.parentNode && form.nodeName.toLowerCase() != 'form') { form = form.parentNode; }
      	
      	var elements = form.getElementsByTagName('input');
      	
      	for (var i = 0; i < elements.length; i++) {
      		if (elements[i].type == 'checkbox' && elements[i].name == name) {
      			elements[i].checked = ref.checked;
      		}
      	}
      }
      
      </script>
      	
      <form name="monForm">
      <input type="checkbox" onclick="checkAllBox(this, 'choix[]');" />
      <input type="checkbox" onclick="checkAllBox(this, 'test[]');" />
      
      <input type="checkbox" name="choix[]" value="1">
      <input type="checkbox" name="choix[]" value="2">
      <input type="checkbox" name="choix[]" value="3">
      <input type="checkbox" name="choix[]" value="4">
      <input type="checkbox" name="test[]" value="5">
      <input type="checkbox" name="test[]" value="6">
      </form>
      


      Essais ça.

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2010 à 2:01:10

        Eh bien merci beaucoup ! :)

        J'étais parti dans autre chose, j'y étais presque mais je n'arrivais pas à décocher les checkbox une fois cochées :=)

        Un grand merci encore une fois !
        • Partager sur Facebook
        • Partager sur Twitter
          17 juin 2010 à 10:47:58

          Bonjour,

          Je cherche à cocher automatiquement des checkbox en fonction de données contenus dans une bdd.
          Ce sujet m'a bien aidé, je l'ai adapté à mes besoins... mais j'ai encore besoin de votre aide.

          Mon formulaire ancien fonctionne parfaitement.
          Mon nouveau formulaire aussi.
          SAUF SAUF SAUF qu'il ne travaille pas avec un tableau unique "localisation" versus ligne12, ligne4... comme le montre l'exemple ci-dessous:
          (Et je ne peux évidemment pas toucher à ce tableau localisation!)

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Document sans titre</title>
          <script type="text/javascript">
          function checkAllBox(ref, name) {
          	var form = ref;
          	
          	while (form.parentNode && form.nodeName.toLowerCase() != 'form') { form = form.parentNode; }
          	
          	var elements = form.getElementsByTagName('input');
          	
          	for (var i = 0; i < elements.length; i++) {
          		if (elements[i].type == 'checkbox' && elements[i].name == name) {
          			elements[i].checked = ref.checked;
          		}
          	}
          }
          
          </script>
          </head>
          <body>
          <hr />
          Ancien Form qui fonctionne
          <form name="ancienform">
                  <input type="checkbox" name="localisation[17]" value="1">Concorde<br />
                  <input type="checkbox" name="localisation[25]" value="2">Madeleine<br />
                  <input type="checkbox" name="localisation[40]" value="3">Chatelet<br />
                  <input type="checkbox" name="localisation[47]" value="4">Les halles<br />
          </form><br />
          <hr />
          
          Nouveau Form test 2
          <form name="monForm">
          <input type="checkbox" onclick="checkAllBox(this, 'ligne12[]');" />Tout cocher/Tout décocher ligne 12<br />
          <input type="checkbox" onclick="checkAllBox(this, 'ligne4[]');" />Tout cocher/Tout décocher ligne 4<br /><br />
          
          <input type="checkbox" name="ligne12[]" value="1">Concorde<br />
          <input type="checkbox" name="ligne12[]" value="2">Madeleine<br />
          <input type="checkbox" name="ligne4[]" value="3">Chatelet<br />
          <input type="checkbox" name="ligne4[]" value="4">Les halles<br />
          </form>
          <hr />
          
          </body>
          </html>
          



          Un peu d'aide????
          • Partager sur Facebook
          • Partager sur Twitter

          Cocher plusieurs checkbox

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown