Данные JQuery передают все выбранные значения флажков со всех страниц - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь каннибализировать ответ на этот вопрос от нескольких других на SO, но не повезло.У меня есть разбитая на страницы таблица, и пользователь может выбрать все строки на всех страницах.Я пытаюсь передать выбранные значения флажка на мой контроллер, но я не могу понять, как получить значение флажка.

То, что у меня пока есть:

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 голосов
/ 25 сентября 2018

Вы пробовали использовать метод .find()?Похоже, ваша проблема нацелена на динамически создаваемые элементы.

userIds = usersGrid.find('input[type="checkbox"]').serializeArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...