Jquery UI Multiselect小部件checkall绑定方法在回发后停止工作

时间:2013-10-10 08:23:35

标签: jquery asp.net postback multi-select

当我尝试使用绑定到多选控件的某些方法时,我遇到了一些问题。

当页面加载时,我以这种方式将方法绑定到窗口小部件:

$('#myMultiselect').bind('multiselectcheckall', 
    function(event, ui){
        alert('All Multiselect items selected!');
    });
);

但在部分回发后,这将停止工作。 有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

您是否尝试在创建多选时使用此功能?

$("#myMultiselect").multiselect({

   checkAll: function(){
      alert('All Multiselect items selected!');
   }

});

编辑: 好的,我知道checkAll只有在点击“全部检查”按钮时才有效。因此,您必须在每次点击时获得已检查项目的数量,并将其与项目总数进行比较,如下所示:

var size = $(this).find('option').size(); //total items amount
var checked = $(this).multiselect('getChecked').size(); //checked items amount

将其与click事件一起使用,并且不要忘记保留checkAll事件,因为点击“全部检查”不会触发click事件:)

$("#myMultiselect").multiselect({
   click: function(){
       var size = $(this).find('option').size(); //total items amount
       var checked = $(this).multiselect('getChecked').size(); //checked items amount
       if (size == checked){
           alert('All Multiselect items (manually) selected!');
       }
   },
   checkAll: function(){
       alert('All Multiselect items selected!');
   }
});

以下是演示:JSFiddle

希望我能帮助你!!