skip to main | skip to sidebar
Code 18
Manuel du savoir-faire à l'usage des geeks et des curieux
RSS
  • Accueil
  • Le web au Québec
  • Liens
  • Twitter
  • Facebook
  • À propos

jeudi 23 avril 2009

Cocher toutes les cases d'un formulaire

Publié par Infinite Loop, à 19 h 29 0 commentaire

Dans les formulaires web, par exemple la liste des courriels de Gmail ou Hotmail, on voit généralement une série d'éléments à cocher et une option supplémentaire qui permet de cocher l'ensemble de la liste d'un seul coup pour nous faciliter la tâche.

Ce genre de comportement est très facile à reproduire en JavaScript, en utilisant une librairie comme Prototype ou jQuery et les sélecteurs CSS. Voici un exemple de code équivalent pour le formulaire suivant :

<form id="frm" method="post">
<input type="checkbox" id="all" name="all" /> Tous
<ul>
<li><input type="checkbox" id="option1" name="options" /> Option 1</li>
<li><input type="checkbox" id="option2" name="options" /> Option 2</li>
<li><input type="checkbox" id="option3" name="options" /> Option 3</li>
<li><input type="checkbox" id="option4" name="options" /> Option 4</li>
<li><input type="checkbox" id="option5" name="options" /> Option 5</li>
</ul>
</form>
Avec Prototype 1.6.0.3
function checkAll(){
$$('input[type=checkbox]').without($('all')).each(
function(e) {
$(e.id).checked = true;
// ou bien inverser la sélection
// $(e.id).checked = !$(e.id).checked;
}
)
}

function initialize() {
Event.observe('all', 'click', checkAll);
}

document.observe('dom:loaded', initialize);
Avec jQuery 1.3.2
function checkAll(){
$('input:checkbox').not( $('#all') ).each(
function() {
this.checked = true;
// ou inverser la sélection
// this.checked = !this.checked;
}
)
}

function initialize() {
$('#all').click(checkAll);
}

$(document).ready( initialize );
Remarquez les différences entre les deux sources :
  • jQuery utilise toujours $() car il accède aux éléments par des sélecteurs CSS. L'ID est spécifié grâce au symbole #
  • Quant à Prototype, il utilise $ pour accéder à un ID. Pour utiliser un sélecteur avec Prototype , il faut utiliser la notation $$()
  • l'utilisation du pseudo sélecteur dans jQuery
  • La fonction without() de Prototype est remplacé par not() pour ne pas inclure dans la liste le checkbox "all"
  • la fonction anonyme de Prototype reçoit un élément "e" en paramètre alors que jQuery y fait référence directement par le mot clé this


Tags: JavaScript

0 réponse à "Cocher toutes les cases d'un formulaire"


Publier un commentaire

Message plus récent Messages plus anciens Accueil
S'abonner à : Publier des commentaires (Atom)
    Suivre @code18 sur Twitter

    Catégories

    • Apache (21)
    • Citations (167)
    • Club Vidéo (24)
    • Coffre à outils (55)
    • CSS (8)
    • Curiosités (117)
    • Design Pattern (2)
    • Drupal (8)
    • Easter Eggs (22)
    • Extensions Firefox (20)
    • GIMP (7)
    • Histoire (21)
    • HTML (32)
    • Humour (57)
    • Intégration (34)
    • iPod (12)
    • JavaScript (110)
    • Jeu de combat (6)
    • Le coin du geek (128)
    • Liens (12)
    • Linux (56)
    • Livres (78)
    • Lois et principes (46)
    • Marché des saveurs (26)
    • Mathématique (18)
    • Mobile (5)
    • Montréal (32)
    • Musique (112)
    • Pancartes et écriteaux (16)
    • Perl (8)
    • Pérou (1)
    • PHP (130)
    • PostgreSQL (44)
    • Programmation (105)
    • Saviez-vous que (55)
    • Sécurité (22)
    • SEO (5)
    • SQL Server (22)
    • Vieilles publicités (6)
    • Virtualisation (8)
    • Voyages (1)
    • Zend Framework (26)

    Divers

    Archives

    • ►  2015 (6)
      • ►  août 2015 (1)
      • ►  juillet 2015 (1)
      • ►  février 2015 (3)
      • ►  janvier 2015 (1)
    • ►  2014 (8)
      • ►  décembre 2014 (1)
      • ►  novembre 2014 (1)
      • ►  octobre 2014 (1)
      • ►  août 2014 (2)
      • ►  juillet 2014 (2)
      • ►  janvier 2014 (1)
    • ►  2013 (53)
      • ►  décembre 2013 (2)
      • ►  novembre 2013 (1)
      • ►  octobre 2013 (3)
      • ►  septembre 2013 (2)
      • ►  août 2013 (5)
      • ►  juillet 2013 (3)
      • ►  juin 2013 (5)
      • ►  mai 2013 (3)
      • ►  avril 2013 (7)
      • ►  mars 2013 (7)
      • ►  février 2013 (11)
      • ►  janvier 2013 (4)
    • ►  2012 (105)
      • ►  décembre 2012 (8)
      • ►  novembre 2012 (5)
      • ►  octobre 2012 (4)
      • ►  septembre 2012 (1)
      • ►  août 2012 (8)
      • ►  juillet 2012 (7)
      • ►  juin 2012 (7)
      • ►  mai 2012 (10)
      • ►  avril 2012 (13)
      • ►  mars 2012 (15)
      • ►  février 2012 (15)
      • ►  janvier 2012 (12)
    • ►  2011 (146)
      • ►  décembre 2011 (14)
      • ►  novembre 2011 (11)
      • ►  octobre 2011 (12)
      • ►  septembre 2011 (13)
      • ►  août 2011 (15)
      • ►  juillet 2011 (17)
      • ►  juin 2011 (18)
      • ►  mai 2011 (15)
      • ►  avril 2011 (9)
      • ►  mars 2011 (7)
      • ►  février 2011 (3)
      • ►  janvier 2011 (12)
    • ►  2010 (398)
      • ►  décembre 2010 (29)
      • ►  novembre 2010 (28)
      • ►  octobre 2010 (32)
      • ►  septembre 2010 (34)
      • ►  août 2010 (22)
      • ►  juillet 2010 (35)
      • ►  juin 2010 (42)
      • ►  mai 2010 (36)
      • ►  avril 2010 (37)
      • ►  mars 2010 (34)
      • ►  février 2010 (32)
      • ►  janvier 2010 (37)
    • ▼  2009 (429)
      • ►  décembre 2009 (32)
      • ►  novembre 2009 (34)
      • ►  octobre 2009 (33)
      • ►  septembre 2009 (37)
      • ►  août 2009 (37)
      • ►  juillet 2009 (39)
      • ►  juin 2009 (38)
      • ►  mai 2009 (37)
      • ▼  avril 2009 (35)
        • Coeur de pirate
        • Photos des développeurs d'OpenOffice
        • Audiotool, studio musical en Flash
        • Compresser TinyMCE
        • Compression HTTP avec GZip
        • Citation no. 27 sur les geeks
        • Compter sur ses doigts
        • Disque dur externe
        • Cocher toutes les cases d'un formulaire
        • Plugin mp3 Fluendo sur Fedora
        • Ajouter du support mp3 à Fedora 10
        • Injection sur PostgreSQL
        • Préférer la balise button à un bouton de formulaire
        • Citation no. 26 sur les logiciels gratuits
        • Écrire du texte à l'envers
        • Amazon = rapide !
        • Amazon.ca en français
        • Centrer un objet dans la page en CSS
        • La fonction PHP la moins utilisée
        • PHP CLI
        • Filtrer une liste de fichiers avec glob
        • Image style Polaroid avec ImageMagick
        • Citation no. 25 sur le langage de programmation pa...
        • Plugin jQuery pour upload de fichiers multiples
        • Comparer des fichiers avec Dreamweaver
        • Compatibilité Internet Explorer 8
        • Temps de chargement d'une page web
        • Installer APC sur Windows
        • Encore une fois Vidéotron...
        • Shazam et SnapTell
        • Citation no. 24 sur le parachutisme
        • Définir une séquence PostgreSQL
        • Pro PHP
        • J is null dans Prototype
        • Poisson d'avril 2009
      • ►  mars 2009 (36)
      • ►  février 2009 (32)
      • ►  janvier 2009 (39)
    • ►  2008 (84)
      • ►  décembre 2008 (34)
      • ►  novembre 2008 (39)
      • ►  octobre 2008 (11)

    Abonnés

Copyright © All Rights Reserved. Code 18 | Converted into Blogger Templates by Theme Craft