jQuery数据表:禁用chechbox除了选中的checbox与分页

时间:2016-06-23 05:27:20

标签: jquery datatables

我有一个jQuery数据表,其中有13000个带复选框选项的用户记录。

根据要求,我可以通过选择针对特定用户的复选框选项从中选择任意3个用户。

当我达到限制时,即所有其他复选框选项应该被禁用。

但目前,它仅适用于该特定页面。当我从第1页选择3个用户时,所有其他复选框选项都被禁用,但是当我移动到第二页时,所有选项都可用于选择用户。意思是,它正常工作,但按照页面明智。

我不想要这个,它应该在我达到限制时工作,即3所有其他复选框选项应该在所有页面上禁用。

jQuery代码:其中checkb是所有复选框的类名。另外,我附上了图片以获取更多信息。

if($('input.checkb').filter(':checked').length == 3)
        $('input.checkb:not(:checked)').attr('disabled', 'disabled');
     else
        $('input.checkb').removeAttr('disabled');

enter image description here

2 个答案:

答案 0 :(得分:0)

使用 JQuery 1.6 + ,您应该使用.prop()函数。

div

更新:假设您的数据表对象为#first,您可以像这样使用

if($('input.checkb').filter(':checked').length == 3)
   $('input.checkb:not(:checked)').prop('disabled', true);
else
   $('input.checkb').prop('disabled', false);

答案 1 :(得分:0)

这样做的一个选择是, 您可以向服务器发送ajax请求以在服务器中设置会话变量, 当每次用户选中复选框时,这些请求应调用以增加会话变量。当计数变为3时,您可以使用所有页面进行检查以禁用或启用列表中的复选框。

另一个选项是在该页面的隐藏框中设置复选框选中计数,并将整个分页设置为ajax。因此,您可以使用javascript检查每个页面中隐藏的盒子数,以启用和禁用复选框。