JQuery Datatables从所有页面传递所有选定的复选框值

时间:2018-09-25 17:00:10

标签: jquery datatables

我正在尝试从其他几个人那里抢夺这个问题的答案,但是没有运气。我有一个分页的表,以及供用户选择所有页面上所有行的选项。我正在尝试将选定的复选框值传递给控制器​​,但是我不知道如何获取复选框的值。

到目前为止我所拥有的:

var usersGrid = $('#usersGrid').dataTable();
var userIds = [];

userIds = usersGrid.$('input[type="checkbox"]').serializeArray();

$.ajax({
    type: "POST",
    url: "/User/SelectUsers/",
    data: { lockIds: userIds },
    dataType: "json",

我的控制器只是期望一个值数组,但是该数组包含复选框的名称和该值,这是它所不喜欢的。我知道这应该是下一步:

userIds.push({ 'name': 'extra_param', 'value': 'extra_value' });

但是我找不到足够的解释。想想我已经在这儿了,谢谢。

编辑:

这可行:

    var usersGrid = $('#usersGrid').dataTable();

    var selectedUsers = [];
    var userIds = [];

    selectedUsers = usersGrid.$('input[type="checkbox"]').serializeArray();

    $(selectedUsers).each(function (i, field) {
        userIds.push(field.value);
    });

但是创建两个数组对我来说有点不客气。仍然想知道是否有一种方法可以只从selectedValues中检索值,而不是复选框的名称。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用.find()方法?听起来您的问题是针对动态创建的元素。

userIds = usersGrid.find('input[type="checkbox"]').serializeArray();