如何停止jqgrid中的onSelectAll事件?

问题描述:

我需要知道在用户单击“全选”复选框之前,是否在jqgrid中选中了一个复选框。我已经检查了它的onSelectAll事件,但在这一点,所有的复选框已被选中:(使信息被遗漏。如何停止jqgrid中的onSelectAll事件?

onSelectAll: function(aRowids, status) {  
    $("input[id^='jqg_'].cbox:checked").each(function() { 
     //All are selecteds now :( 
     console.log("no success!"); 
}); 

我知道我可以通过JavaScript数组,并把控制选择复选框我试图避免这种解决方法

我试图绑定'选择所有'复选框中的点击事件,但'onSelectAll'事件被激发之前'点击'事件:(

 $("#cb_list1").bind({ 
     click: function() { 
     console.log("hello");}, 
    }); 

因此'hello'appe '没有成功'之后的ars,'没有成功'出现在我的jqgrid有多少行(不管在点击'全部选中'复选框之前已经选择了多少行)。

有什么想法?

谢谢!

您可以编写onSelectAllBefore函数并在onSelectAll之前调用它。

onSelectAll: function(aRowids, status) { 
    onSelectAllBefore(aRowids, status, function() { 
     $("input[id^='jqg_'].cbox:checked").each(function() { 
     //All are selecteds now :( 
     console.log("no success!"); 
    }); 
}); 

function onSelectAllBefore(aRowids, status, callback) { 
    console.log("hello"); 
    callback(aRowids, status); 
} 
+0

@Ivan你看到控制台中的“hello”之前,“没有成功!”? – kobe

+0

是的...这工作,但我的问题没有解决,因为在两个函数(onSelectAllBefore和onSelectAll),当我尝试获得选定的复选框我得到相同的结果:所有这些:( – Ivan