您正在使用带有分页的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的值似乎没问题但是对于未经检查的值,它返回整个数据的计数 请帮忙
答案 0 :(得分:1)
这很简单:
在not
checked
var rowcollectionChecked = oTable.$(".rowCheckerClass:not(checked)", {"page": "all"});
答案 1 :(得分:0)
尝试这样的事情,
var rowcollectionChecked = oTable.$(".rowCheckerClass:not(:checked)", {"page": "all"});