2010-10-25 3 views
0

J'essaie d'utiliser jQuery pour faire une validation sur un formulaire; J'ai besoin d'une méthode où je peux valider si tous les contrôles ont été remplis \ selected. Les CheckBoxLists de mon application me donnent du fil à retordre car il semble que jQuery aime bien adresser chaque checkbox individuellement, mais je dois vraiment évaluer toutes les CBL dans un div et savoir si chaque case a été cochée.JQuery pour déterminer si toutes les checkboxlists (en div) ont été vérifiées

Je peux nommer le DIV et les identifiants individuels de CBL comme je le souhaite (de même que CBL1, CBL2, etc.). J'ai vraiment besoin d'un moyen d'analyser tout dans un

+2

Pourriez-vous nous donner du HTML rendu? CheckBoxLists ne sont pas un concept HTML, mais un Microsoft qui est traduit en HTML. – lonesomeday

+0

même cette réponse pourrait être utile pour voir comment traverser http://stackoverflow.com/questions/786142/how-to-retrieve-checkboxes-values-in-jquery – kobe

Répondre

0

Vous devez avoir au moins 1 case à cocher dans chaque liste sélectionnée. Je me demande si cela fonctionnerait (faire toutes les avoir un ID de CBL qui commence par 'CBL' (par exemple CBL1, CBL2, ...).):

var valid = true; 
$('[id^="CBL"]').each(function(i,v){ 
    valid = valid && ($(this).find(':checkbox:checked').size() >= 1); 
}); 
alert(valid); 

JSFiddle

+0

Ceci vérifie si toutes les cases à cocher ont été cochées, pas toutes les cases à cocher * listes *. –

+0

Qu'est-ce qu'une liste de cases à cocher? –

+0

@Rocket - C'est un contrôle dans ASP.Net, rendu sous la forme d'un tableau ou d'une disposition de cases à cocher –

0
function hasBoxesChecked(id) { 
    return $(":checkbox:checked", document.getElementById(id)).length > 0; 
} 

est ici un live demo

+0

Remarque: la démo utilise la sortie réelle de deux contrôles CheckBoxList ASP.NET –

2

en supposant que ASP votre CBL parse en tant que tel:

<h2>Interests</h2> 
<ul id='CBL1' class='checkboxlist'> 
    <li><input type='checkbox' name='interest' value='javascript'> JavaScript</li> 
    <li><input type='checkbox' name='interest' value='jquery'> jQuery</li> 
</ul> 
<h2>Hobbies</h2> 
<ul id='CBL2' class='checkboxlist'> 
    <!-- subsequent data --> 

Vous pouvez vérifier do ing quelque chose comme:

function validateCBLs() { 
    var $lists = $('ul.checkboxlist'); 
    $lists.each(function(i, item) { 
     if ($(item).find(':checked').length < 1) { 
      //Show user an error, etc 
      alert('Please, check at least one item from ' + $(item).attr('id')); 
     } 
    }); 
} 

jsFiddle: Here

+0

+1 mais ... Pourquoi les signes $ devant le nom de la variable? Oh, et vous avez besoin d'une déclaration de var ici. –

+0

@Billy ONeal, certaines personnes préfixent les variables du sélecteur jQuery avec '$' pour l'identifier comme un sélecteur jQuery. Je ne le fais pas toujours, et je ne pourrais pas vous dire pourquoi je l'ai fait ici ... Correction de l'instruction var. – clarkf

0

Essayez ceci:

$('.checkboxlist').filter(function(){ 
      return $(this).find(':checked').size()>0; 
     }).size() 

Cela vous donnera le nombre de CBLS qui a au moins une case à cocher sélectionnée.

Questions connexes