Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
albius
#
Citer
77 Posts
Bonjour/ bonsoir,

A partir d'un lien, je souhaite sélectionner/ dé-sélectionner des checkbox:
$('#cocheText').live('click',function(){
        var cases = $('#rowsDeleteForm').find(':checkbox');
        if(cases.checked){
            cases.attr('checked', false);
            $('#cocheText').html('Cocher tout')
        }
        else{
            cases.attr('checked', true);
            $('#cocheText').html('Tout décocher')
        }
        return false;
    });

Seulement, la première condition ne passe pas, alors que la deuxième est fonctionnelle. Je ne comprends pas...
Merci,
Modifié par albius (06 Feb 2012 - 17:48)

«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

http://www.myweb-site.fr/ 
^
Seyu
#
Citer
54 Posts
Déjà, à quel moment est-ce que tu parcours tes checkbox pour vérifier s'il est checked ou non ? Il te faudrait un each sur tes checkbox, du genre

cases.each(function(){...});


Puis tu testes sur le checkbox en cours

if $(this).attr('checked') {...}


Ensuite,

albius a écrit :
if(cases.checked)[/code]


.checked ?

Tu veux dire
 if (cases.attr('checked')) // Si la case a l'attribut coché


Non ?

^
kenor
#
Citer
399 Posts
Ta condition est sensé vérifier quoi ?

if(cases.checked){

Si ils sont tous coché ?

Je viens de dev ça il y a 5 minutes pour une messagerie privée (selectionner/deselectionner pour pouvoir tout supprimer)


        // sélectionne ou déselectionne tout
        $('#messagerieSelectAll').click(function(e) {
            e.preventDefault();

            if ($(this).attr('data-select') == 'select')
            {
                $(this).html('Tout désélectionner').attr('data-select','unselect');

                $('input.messagerieAction').each(function(i) {
                    $(this).attr('checked',true);
                });
            }
            else
            {
                $(this).html('Tout sélectionner').attr('data-select','select');

                $('input.messagerieAction').each(function(i) {
                    $(this).attr('checked',false);
                });
            }
        });


avec le HTML

<a href="#" id="messagerieSelectAll" data-select="select">Selectionner tout</a>


Et chaque case à cocher contient la class "messagerieAction"

^
albius
#
Citer
77 Posts
a écrit :
Il te faudrait un each sur tes checkbox, du genre
cases.each(function(){...});

Pas nécessairement Seyu,
var cases = $('#rowsDeleteForm').find(':checkbox'); 

Revient au même (il me semble avoir lu un article à ce propos quelque part...)
Par contre, +1 pour la condition.
Merci pour vos réponses,

«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

http://www.myweb-site.fr/ 
^
kenor
#
Citer
399 Posts
Oui tu peux remplacer

$('input.messagerieAction').each(function(i) {

$(this).attr('checked',true);

});


par
$('input.messagerieAction').attr('checked',true);



J'avais d'autres besoins à côté.

^