IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

validation de plusieurs checkbox en dehors d'un form


Sujet :

JavaScript

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut validation de plusieurs checkbox en dehors d'un form
    bonjour,
    je suis débutant en JS
    je cherche copier coller des checkbox dans un document et de les mettres dans un formulaire donné (par exemple dans une div avec un innerHTML) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
    <body>
    <input type="checkbox" name="num_produit[1][16073]" value="1">
    <input type="checkbox" name="num_produit[2][23456]" value="4">
    <input type="checkbox" name="num_produit[1][29843]" value="3">
    <input type="checkbox" name="num_produit[1][23444]" value="2">
     
    <form action="/" id="monform">
    <input type=submit value=OK>
    </form>
    </body>
    </html>

    je veux récupérer des checkbox coché pour les passer dans mon formulaire.
    je veux donc récuperer
    exemple pour <input type="checkbox" name="num_produit[2][23456]" value="4">
    je veux récupérer 2, 23456 et la valeur 4

    quelques pistes :
    faire un onclick sur le submit permetant de récuperer N élément des checkbox coché de tout le document puis de réécrire les balises dans mon formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <html>
    <body>
    <javascript>
    function CaptureAllCheckbox(idfrom, nameCheck) {
      mescheckbox = document.getElementsByName(nameCheck); 
      nb = mescheckbox.length; 
       for(var i=0; i < nb; i++;) {
         if(mescheckbox[i].checked)
           document.getElementById(idBalise).innerHTML += "<input type=\"checkbox\" name=\"" + nameCheck + "\"[??????][??????]\" value=\""+ mescheckbox[i].value +"\">"; 
       }
    }
    </javascript>
     
    <input type="checkbox" name="num_produit[1][16073]" value="1">
    <input type="checkbox" name="num_produit[2][23456]" value="4">
    <input type="checkbox" name="num_produit[1][29843]" value="3">
    <input type="checkbox" name="num_produit[1][23444]" value="2">
     
    <form action="page.php" id="toto">
    <input type=submit value=OK onclick="CaptureAllCheckbox('toto', 'num_produit')">
    <div id="idbalise"></div>
    </form>
    </body>
    </html>

    le script JS n'est pas terminé, il y a des "????????" dans le code.
    est-ce la bonne méthode? y'a plus simple??

    merci

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    salut,
    ta balise :
    est à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    Ensuite, je ne comprends pas bien pourquoi tu veux faire ça, mais tu ne peux pas mettre ton bouton comme un type="submit" sinon tu vas envoyer ton formulaire de suite.

    Ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="num_produit[1][16073]" value="1">
    si le name est différent à chaque fois, ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mescheckbox = document.getElementsByName(nameCheck);
    ne pourra pas fonctionner, il faut que le name soit identique pour toutes tes checkbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for(var i=0; i < nb; i++;) {
    pas de ";" à la fin du for

    Bref, voilà ce qui te permet de copier-coller tes checkbox, une fois nettoyé. Mais attention j'ai ôté les notions [?][?????]. A toi de les ajouter (transmettre) différemment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script type="text/javascript">
    function CaptureAllCheckbox(idfrom, nameCheck) {
      mescheckbox = document.getElementsByName(nameCheck); 
      nb = mescheckbox.length;
       for(var i=0; i < nb; i++) {
         if(mescheckbox[i].checked)
           document.getElementById("idBalise").innerHTML += "<input type=\"checkbox\" name=\"" + nameCheck + "\"[??????][??????]\" value=\""+ mescheckbox[i].value +"\">"; 
       }
    }
    </script>
     
     
     
    <input type="checkbox" name="num_produit" value="1">
    <input type="checkbox" name="num_produit" value="4">
    <input type="checkbox" name="num_produit" value="3">
    <input type="checkbox" name="num_produit" value="2">
     
    <form action="page.php" id="toto">
    <input type="button" value=OK onclick="CaptureAllCheckbox('toto', 'num_produit')">
    <div id="idbalise"></div>
    </form>
    ERE

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    merci emmanuel.remy pour cette correction,
    le code que je t'ai montré est juste un exemple que j'ai fait à la va vite.

    a quoi ça sert? moi aussi je ne sais pas non plus.

    c'est juste que je n'ai pas acces à certaine portion de code HTML d'ou des contraintes à récuperer des valeurs de formulaire...

    l'exemple suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="num_produit[1][16073]" value="1">
    je ne peux pas le modifier.

    donc je dois vraiment trouver une solution pour exploiter ces checkbox cochés et de les injecters sur un autre formulaire plus bas dans la page.

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    a quoi ça sert? moi aussi je ne sais pas non plus
    On est bien parti !

    Trêve de plaisanterie, dans ce cas passe plutôt par un document.getElementsByTagName, récupère tous les INPUT, regarde si ce sont des checkbox dont le nom commence par num_produit et si elle sont cochées, enchaine alors sur la copie comme précédemment.

    C'est la même chose que précédemment sauf que tu n'obtiens pas le tableau des checkbox aussi rapidement.

    ERE

Discussions similaires

  1. Pb validation formulaire avec checkbox
    Par wolfe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2005, 08h50
  2. récupérer données de plusieurs checkbox
    Par themis121 dans le forum Langage
    Réponses: 46
    Dernier message: 28/11/2005, 16h30
  3. Comment cocher/décocher plusieurs "checkbox"?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2005, 23h38
  4. Cochage de plusieurs checkbox
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/03/2005, 10h30
  5. Réponses: 3
    Dernier message: 02/12/2004, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo