2012-03-06 2 views
1

J'utilise jquery avec l'élément dropdownchecklist. c'est mon code pour config selectbox.Limite jQuery "Liste de vérification de liste déroulante" sélectionne

jQuery('#selectbox').dropdownchecklist({ width: 120, maxDropHeight: 100, firstItemChecksAll: false, emptyText: 'Select' }); 

Je souhaite limiter la sélection pour seulement 2 sélections. Si l'utilisateur sélectionne 2 options, toutes les autres options seront désactivées pour la sélection. Comment puis-je le faire?

Mise à jour: J'ai trouvé la meilleure façon de le faire

function Selectbox_limit(jidList) { 
    var jids = ''; 
    var counter = 0; 
for(var i=0; i<jidList.options.length; i++) { 
    if(jidList.options[i].selected == true) 
     counter++; 

    if(counter >= 2) { 
     jidList.options[i-1].selected = false; 
        jQuery("#selectbox").dropdownchecklist("destroy"); 
        jQuery("#selectbox option").attr('disabled','disabled'); 
        jQuery("#selectbox option:selected").attr("disabled",""); 
        jQuery('#selectbox').dropdownchecklist({ _propeties_ }); 
     return; 
    } else if(counter < 2) { 

       jQuery("#selectbox").dropdownchecklist("destroy"); 
       jQuery("#selectbox option").attr("disabled",""); 
       jQuery('#selectbox').dropdownchecklist({ _propeties_ }); 
     return; 
    } 
} 

Répondre

0

Le dropdownchecklist ajouter la classe active aux cases à cocher afin que vous puissiez l'utiliser comme ceci:

$('.active').change(function() { 
    var num = 0; 
       $('.active:checked').each(function() { 
        num++; 
       }); 
    if(num >= 2) 
    { 
      $('.active:checked').attr("disabled", "disabled"); 
      $('.active:checked').each(function() { 
        $(this).removeAttr(); 
       }); 
    } 
    else 
    { 
      $('.active').removeAttr("disabled", "disabled"); 
    } 
}); 
0

ici est un échantillon d'un jQuery Dropdown Check List avec limite

onItemClick: function(checkbox, selector){ 
    var justChecked = checkbox.prop("checked"); 
    var checkCount = (justChecked) ? 1 : -1; 
    for(i = 0; i < selector.options.length; i++){ 
    if (selector.options[i].selected) checkCount += 1; 
    } 
    if (checkCount > 3) { 
    alert("Limit is 3"); 
    throw "too many"; 
    } 
} 
0

Vous pouvez le faire par ce

var $b = $('input[type=checkbox]'); 
if(($b.filter(':checked').length)>2){ 
$b.attr("disabled", true); 
} 

ou vous pouvez utiliser

$(':checkbox:checked").length 
$(":checkbox").filter(':checked').length 

espérons que cela aidera.

Questions connexes