需要获取jquery数据表中所有未勾选复选框的值

时间:2015-05-22 02:57:18

标签: jquery jquery-datatables

您正在使用带有分页的jquery数据表,并且该列表非常庞大,似乎大约365页(即:jquery分页每页有10个结果)。 用户可以从任何页面中选择checbox,因此当前正在获取所有页面中所有复选框的值,并在所有页面上打勾。通过

获取勾选的值
 var oTable = $('#assignUser').dataTable();
var rowcollectionChecked =  oTable.$(".rowCheckerClass:checked", {"page": "all"});

这似乎工作正常。

现在我需要获取所有未标记的checboxes值,不包括数组中的选定值。 有人可以帮我解决这个问题。

AM无法创造小提琴 这是被调用的onClick事件

Liferay.provide(
                window,
                '<portlet:namespace/>submitFormForAction',
                function() {
                    var accepted = confirm('<%= UnicodeLanguageUtil.get(pageContext, 
                            "are-you-sure-you-want-to-update-associations") %>');
                    var oTable = $('#assignUser').dataTable();
                    var rowcollectionChecked =  oTable.$(".rowCheckerClass:checked", {"page": "all"});
                    var rowcollectionNotChecked =oTable.$(".rowCheckerClass:not(checked)", {"page": "all"});
                    var checkedIds = [];
                    var notCheckedIds = [];

                    rowcollectionChecked.each(function(index,elem){
                        var checkbox_value = $(elem).val();
                        checkedIds.push($(this).val());
                    });
                    rowcollectionNotChecked.each(function(index,elem){
                        var checkbox_value = $(elem).val();
                        notCheckedIds.push($(this).val());
                    });


                    if (accepted) {
                        var frm = document.<portlet:namespace/>fm;
                        var hiddenField1 = frm.<portlet:namespace/>addUserIds;
                        var hiddenField2 = frm.<portlet:namespace/>removeUserIds;
                        hiddenField1.value = checkedIds;
                        hiddenField2.value = notCheckedIds
                        submitForm(frm);
                    }
                },
            ['liferay-util-list-fields']
        );

checked的值似乎没问题但是对于未经检查的值,它返回整个数据的计数 请帮忙

2 个答案:

答案 0 :(得分:1)

这很简单:

not

之前添加checked
var rowcollectionChecked =  oTable.$(".rowCheckerClass:not(checked)", {"page": "all"});

答案 1 :(得分:0)

尝试这样的事情,

var rowcollectionChecked =  oTable.$(".rowCheckerClass:not(:checked)", {"page": "all"});