首页 > 解决方案 > jQuery 数据表:在每个分页上启用几个文本框

问题描述

我创建了一个数据,其中我的一列有一个复选框元素,另一列有一个文本框元素。其中每一个的 ID 都是根据行中填充的数据动态生成的。

我一直在尝试做的是在选中相应的复选框时启用文本框。这个数据表有分页。

问题:

使用下面的代码,当在某个页面(例如第 1 页)上选中复选框时,我可以启用文本框。但是,当我在第 1 页上启用了一些 texboxes 后尝试在第 2 页上启用文本框时,它不允许我这样做。我究竟做错了什么 ?

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);
});

标签: checkboxpaginationdatatablestextbox

解决方案


我没有遍历复选框,而是在更改事件本身上编写了启用文本框。这对我有用:

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);
});

推荐阅读