2009-09-10 4 views
1

J'ai un script jQuery qui va afficher des divs spécifiques selon l'option de sélection qui a été sélectionnée.jQuery décochez les cases lorsque vous masquez div?

Voici le code pour que:

jQuery.noConflict(); 
jQuery(document).ready(function() { 
    jQuery.viewMap = { 
    '' : jQuery([]), 
    '1' : jQuery('.company_1'), 
    '2' : jQuery('.company_2') 
    }; 
    jQuery('#companyid').change(function() { 
    jQuery.each(jQuery.viewMap, function() { this.hide(); }); 
    jQuery.viewMap[jQuery(this).val()].show(); 
    }); 
}); 

(exemple div)

<div class="company_1" style="display: none;"> 
    <input type="checkbox" name="classifications[Miner]" id="classifications[Miner]" /> Spec/Rough 
    <input type="checkbox" name="classifications[Dealer]" id="classifications[Dealer]" /> Dealer 
</div> 

Je voudrais qu'il effacer toutes les cases à l'intérieur du div (.company_1, .company_2 etc) si quelqu'un sélectionne une option différente. Si ça a du sens? :)

Merci!

+0

Vous voulez donc un bouton radio à la place? – strager

+2

FYI, les crochets ne sont pas autorisés pour les identifiants. http://htmlhelp.com/reference/html40/attrs.html – seth

+0

@strager - naw J'ai besoin de cases à cocher, les utilisateurs peuvent sélectionner plusieurs réponses .. @seth - merci pour l'info sur les crochets dans les ID :) – SoulieBaby

Répondre

10

Si vous décochez une case, l'attribut "checked" est supprimé. Essayez:

jQuery.each(jQuery.viewMap, function() { 
    this.hide(); 
    jQuery('input:checkbox', this).removeAttr('checked'); 
}); 
+0

Merci donc beaucoup, fonctionne parfaitement! :) – SoulieBaby

1

Que diriez-vous:

$("div.company_1 input[type:checkbox]").removeAttr("checked"); 
2

Andres @ David merci de me pointer dans la bonne direction, je ne pouvais pas obtenir votre code de travail, mais utilisé:

$("div.company_1 input:checked").removeAttr("checked"); 

qui a fonctionné.

Questions connexes