2009-12-23 3 views
2

comment mootools 1.11 peut-il déterminer si un div contient des cases cochées?mootools 1.11 div contient la case cochée

essayé toutes sortes de variations à l'aide de $ $$ $ E $ ES getElements et sélecteurs CSS, juste pas retourner vrai si ce div ne contient pas de cases à cocher

var ticked = $(sId).getElements('[checked=checked]'); 
if($chk(ticked)){alert('yo');}else{unticked = true;} 
+0

Bienvenue dans StackOverflow! Grande première question. – Sampson

Répondre

-1

de 1,1

console.log($('id').getProperty('checked')); 
3

"vérifié" est une propriété DOM attribuée de façon dynamique (qui est un booléen), et l'accès à l'attribut renvoie uniquement la valeur qui était là lorsque la page a été chargée (ou la valeur que vous avez placée lors de l'utilisation de setAttribute).
En outre, comme MooTools 1.11 ne dispose pas d'sélecteurs complexes (attributs ne peuvent pas être filtrés directement dans $$) et la fonction filterByAttribute accepte que la comparaison de chaînes directe, c'est votre seul (et plus!) Option:

$(sId).getElements('input').filter(function(input) { 
    return /radio|checkbox/.test(input.getAttribute('type')) && input.checked; 
}) 

note: J'ai ajouté la radio juste pour l'exhaustivité, la boucle de filtre devrait être exécutée de toute façon pour vérifier l'état vérifié.

Si vous voulez simplifier le processus et être en mesure de réutiliser le code (la façon MooTools), vous pouvez également mélanger dans le filtre vérifié dans des éléments comme celui-ci:

Element.extend({ 
    getCheckedInputs: function() { 
     return this.getElements('input').filter(function(input) { 
      return /radio|checkbox/.test(input.getAttribute('type')) && input.checked; 
     }); 
    } 
}); 

puis votre appel de sélection est réduit à:

$(sID).getCheckedInputs(); 
Questions connexes