Cochez automatiquement des groupes de checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cochez automatiquement des groupes de checkbox

par guilt92 » 12 déc. 2008, 15:23

Merci à vous.

Grâce à mes tests suite à vos réponses j'ai pu établir que tout simplement il fallait mettre les [] dans le nom pour que cela fonctionne.

Problème résolu

par jojolapine » 11 déc. 2008, 17:42

Tu peux récupérer tout les élements de type input (getElementsByTagName) et ensuite, tu fait un test sur le name, puis tu fait l'action ou pas...

par guilt92 » 11 déc. 2008, 17:29

Merci,

Mais le problème c'est que du coup cela coche toutes les checkboxes du formulaire et non pas uniquement celles qui ont le nom ss_chk_Exemple[] . Je vais essayer d'adapter mais pour l'instant je suis peu inspiré.

par yaug » 11 déc. 2008, 17:12

bonjour.
Voici comment je fais personnelement :

Code : Tout sélectionner

function reverseSelection(id, bottonId) { if($(id)){ var currentState = $(bottonId).checked; var myform = $(id); var checkboxes = myform.getElementsByTagName('input'); for (var i = 0, matchingInputs = [], length = checkboxes.length; i < length; i++) { var box = checkboxes[i]; if (box.type != 'checkbox') continue; box.checked=currentState ; } } }
Sachant que ID est l'id du formulaire et que bottonId est l'id de l'élément qui va tout inverser.
Cela permet la sélection de tous les éléments, ou leur déselection.

J'avais fait cela vite fait quand j'en avait eut besoin, il doit donc exister de meilleures solutions.

Cochez automatiquement des groupes de checkbox

par guilt92 » 11 déc. 2008, 17:04

Bonjour,

Je ne parviens pas à trouver l'astuce pour que lorsque je clique sur une checkbox un certain nombre d'autres checkbox soit coché.
J'y parviens si je donne un nom propre à chacune, mais avec un nom de type name[] je n'y parviens pas

Code html :

Code : Tout sélectionner

<input type="checkbox" name="chk_Exemple" onclick="switch_check('ss_chk_Exemple')"/> <input type="checkbox" value="1" name="ss_chk_Exemple[]"/> <input type="checkbox" value="2" name="ss_chk_Exemple[]"/>
La fonction js que je n'arrive pas à faire :

Code : Tout sélectionner

function switch_check(name) { for(i=0;i<document.getElementsByName(''+name+).length;i++) //length renvoie 0 :( { document.getElementsByName(''+name).item(i).checked = true; } }
J'ai essayé un for(... in ...) mais pas plus de succès...

Quelqu'un pourrait m'expliquer comment ca fonctionne svp ?

Merci.