JQuery Datatable: включить несколько текстовых полей на каждой из страниц - PullRequest
0 голосов
/ 21 мая 2018

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

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

Проблема:

Используя приведенный ниже код, я могу включить текстовое поле, когда флажок установлен на определенномстраница (например, страница 1).Однако, когда я пытаюсь включить текстовое поле на странице 2 после того, как несколько текстовых полей включены на странице 1, это не позволяет мне сделать это.Что я делаю не так?

var table = $('#example').DataTable();

table.$("input:checkbox", { "page": "all"}).change(function () {
   var someObj = {};
   someObj.Checked = [];

   table.$("input:checkbox", { "page": "all" }).each(function () {
      if ($(this).is(":checked")) {
            someObj.Checked.push($(this).attr("id"));
            document.getElementById("ID_" + $(this).attr("id")).disabled = false;
      }
   });

   //console.log(someObj.Checked);
});

1 Ответ

0 голосов
/ 22 мая 2018

Вместо того, чтобы проходить по проверенным полям, я написал текстовое поле включения для самого события изменения.Это сработало для меня:

table.$("input:checkbox", { "page": "all" }).change(function () {

    var checkedID = {};
    checkedID.Checked = [];

    if ($(this).is(":checked")) {
        checkedID.Checked.push($(this).attr("id"));
        document.getElementById("ID_" + $(this).attr("id")).disabled = false;
    }

console.log(checkedID.Checked);
});
...