jQuery的限制“下拉检查表”选择(jQuery limit “Dropdown Check Li

2019-09-28 01:49发布

我使用jQuery与dropdownchecklist项目。 这是我的代码来配置选择框。

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

Answer 1:

该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"); 
     }
});


Answer 2:

这里是一个样本jQuery的下拉列表检查与限制

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


Answer 3:

您可以通过此做

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

或者您可以使用

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

希望它帮助。



文章来源: jQuery limit “Dropdown Check List” selects