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 :

Cocher/décocher chekboxes selon le name


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut Cocher/décocher chekboxes selon le name
    Bonjour,

    le code suivant permet de cocher/decocher tous les checkboxes d'un formulaire par un click sur un seul lien, selon leur name.

    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
    25
    26
    <script language="javascript" type="text/javascript">
    function check(method)
    {
    	var checkboxes = document.getElementsByName("subscriptions");
    	for(i=0; i < checkboxes.length; i++)
    	{
    		checkboxes[i].checked = method;
    	}
    }
    </script>
    <form method="post" action="">
        <fieldset>
    		<b>Please choose the magazines you would like to subscribe to:</b><br/><br/>
    		<input type="checkbox" name="subscriptions" value="1"/> Sports Illustrated<br/>
     
    		<input type="checkbox" name="subscriptions" value="2"/> Bicycling<br/>
    		<input type="checkbox" name="subscriptions" value="3"/> Time<br/>
    		<input type="checkbox" name="subscriptions" value="4"/> Newsweek<br/>
    		<input type="checkbox" name="subscriptions" value="5"/> National Geographic<br/>
    	</fieldset>
     
    	<br/>
    	<fieldset>
        	<input type="submit" value="Subscribe" /> Select: <a href="#" onclick="check(1); return false;">All</a>, <a href="#" onclick="check(0); return false;">None</a>
    	</fieldset>
    </form>
    Dans mon cas, pour travailler sous Prototype, j'ai été obligé d'attribuer un name différent (address-1, address-2, address-3, sport-1, sport-2, sport3).

    Serait-il possible que ce script (ou un autre !) permettre de sélectionner selon une partie du name : address et sport. C'est à dire en supprimant la fin -1, -2, -3 qui sont toujous sur le même modèle "tiret + nombre" ?

  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,

    Avec un code qui reste du javascript généraliste.
    Tu peux remplacer la partie de sélection des éléments par une sélection prototype type $

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <HTML>
     
    <script language="javascript" type="text/javascript">
    //pour ton type de sélection (adress ou sport)
    function check(typeSel, method)
    {
    	for(var i=0; i < document.forms["frm"].elements.length; i++)
    	{
    	  var input = document.forms["frm"].elements[i];
    		if (input.type=="checkbox" && input.name.substring(0,input.name.lastIndexOf('-'))==typeSel)
            input.checked = method;
    	}
    }
    </script>
      <BODY BGCOLOR="#EAEAFF" TEXT="#000000">
     
    <form method="post" action="" name="frm">
        <fieldset>
    		<b>Please choose the magazines you would like to subscribe to:</b><br/><br/>
    		<input type="checkbox" name="sport-1" value="1"/> Sports Illustrated<br/>
     
    		<input type="checkbox" name="sport-2" value="2"/> Bicycling<br/>
    		<input type="checkbox" name="adress-3" value="3"/> Time<br/>
    		<input type="checkbox" name="adress-1" value="4"/> Newsweek<br/>
    		<input type="checkbox" name="adress-2" value="5"/> National Geographic<br/>
    	</fieldset>
     
    	<br/>
    	<fieldset>
        	<input type="submit" value="Subscribe" /> Select Sport: <a href="#" onclick="check('sport',true); return false;">All</a>, <a href="#" onclick="check('sport',false); return false;">None</a><br>
          Select Adress: <a href="#" onclick="check('adress',true); return false;">All</a>, <a href="#" onclick="check('adress',false); return false;">None</a>
    	</fieldset>
    </form>
      </BODY>
    </HTML>
    ERE

  3. #3
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut
    Bonjour,

    la piste Prototype est excellente car mon projet est basé sur ce framework.
    Merci pour ton aide.

Discussions similaires

  1. cocher-décocher une case
    Par baillador dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/04/2006, 13h43
  2. [JavaScript] Problème cocher/décocher checkbox
    Par Le_tzao dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 01/12/2005, 10h07
  3. Comment cocher/décocher plusieurs "checkbox"?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2005, 23h38
  4. [HTML] [Formulaire] Empêcher de cocher/décocher une checkbox
    Par requiemforadream dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/05/2005, 15h46

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