我正在尝试从其他几个人那里抢夺这个问题的答案,但是没有运气。我有一个分页的表,以及供用户选择所有页面上所有行的选项。我正在尝试将选定的复选框值传递给控制器,但是我不知道如何获取复选框的值。
到目前为止我所拥有的:
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中检索值,而不是复选框的名称。
答案 0 :(得分:0)
您是否尝试过使用.find()
方法?听起来您的问题是针对动态创建的元素。
userIds = usersGrid.find('input[type="checkbox"]').serializeArray();