2012-03-06 49 views
1

我正在使用jQuery與dropdownchecklist項目。 這是我配置選擇框的代碼。jQuery限制「Dropdown Check List」選擇

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

我要限制選擇的只有2個選擇。 如果用戶選擇2個選項,所有其他項目將禁用選擇。 我該怎麼辦?

更新: 我發現這樣做

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; 
    } 
} 

回答

0

的dropdownchecklist類主動添加到複選框,這樣你就可以使用它像這樣:

$('.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

最簡單的方法在這裏是一個jQuery Dropdown Check List與極限樣本

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

您可以通過此

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

或者您可以使用

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

希望它有幫助。