当前位置: 首页 > 知识库问答 >
问题:

获取作为输入文本字段的Datatables单元格值

有翰海
2023-03-14

我正在生成一个带有javascript数据源的数据表。数据是通过对nodejs的ajax调用返回的,nodejs查询sqlserverdb表并返回两列,都是数字数据。我又添加了两列来保存输入字段,默认值为0,以便用户输入数字,从而增加/减少A/B列中的值。

$('#mytable').DataTable( {
    "data": data,
    "columns": [
        { "data": "ColumnA", "defaultContent": "NA" },
        { "data": "ColumnB", "defaultContent": "NA" },
        { "data": undefined, "defaultContent": '<input type="text" value="0" size="10"/>'},
        { "data": undefined, "defaultContent": '<input type="text" value="0" size="10"/>'}
    ]
});

这渲染得很好,我可以修改单元格中输入字段中的文本。在表外有一个单独的输入字段,用户可以单击该字段“提交更改”,这将调用一个javascript函数来读取表中的这些输入字段。然而,我不知道如何得到它们。使用:

var aTable = $('#mytable').DataTable();
var colAchange = atable.cell(0, 2).data();
var colBchange = atable.cell(0, 3).data();

两个colA/Bchange变量都只有'input type=“text”…'html文本,而不是输入字段的值。这确实有道理,但我找不到读取输入字段值的正确方法。我曾经在Datatables文档中读到,您可以向行数据中添加“元数据”。我是否需要这样做才能获取该元素的“id”并以此查询该元素?否则,如何获取该输入的值?

共有2个答案

韶浩皛
2023-03-14

我有一个既简单又实用的解决方案。需要注意的是,我的代码DOES允许使用数据表data()方法,而且这对于任何接收超文本标记语言代码的人来说都是一种解决方案,而不是从一行的每个单元格接收内部文本,而不是试图获取输入文本框的值。单击的行通过data()返回数组。行的每个单元格都包裹在span中,因此td中的任何明文/非超文本标记语言字符串都可以呈现为超文本标记语言元素,因此可以由jQuerytext()方法识别:

$('#mytable tbody').on('click', 'tr', function (e) {
   var rowArray = aTable.row(this).data();
   var colAchange = $('<span/>').html(rowArray[0]).text();
   var colBchange = $('<span/>').html(rowArray[1]).text();
});

JSFiddle:https://jsfiddle.net/nyv7j6h8/

锺博耘
2023-03-14

如果您只想提取输入框中输入的值,您必须通过jQuery或本地DOM。dataTables本身不知道对表单输入字段所做的任何更改,因此尝试通过cell(). data()检索值将永远不会工作,有或没有id's/正交数据:

aTable.cell(0,2).nodes().to$().find('input').val()
aTable.cell(0,3).nodes().to$().find('input').val()   

将为您提供各种输入的当前值。在这个小提琴中100%复制了你上面的场景-

这基本上也是官方留档建议从表单输入中提取值的方法-

如果您想在表中执行过滤/搜索,其中还包括用户在表单输入中所做的更改,那么就有点棘手了-

 类似资料:
  • 问题内容: 如何从输入字段中获得插入符的位置? 我已经通过Google找到了一些零散的信息,但是没有任何防弹证据。 基本上像jQuery插件之类的东西是理想的,所以我可以简单地做 问题答案: 找到了这个解决方案。不是基于jquery的,但是将其集成到jquery中没有问题:

  • 问题内容: 如何从输入字段中获得插入符的位置? 我已经通过Google找到了一些零散的信息,但是没有任何防弹证据。 基本上像jQuery插件之类的东西是理想的,所以我可以简单地做 问题答案: 更新更容易: 使用时,它与所有主要浏览器兼容。 更新:仅当未定义类型或在输入上时,此方法才有效。 旧答案: 找到了这个解决方案。不是基于jquery的,但是将其集成到jquery中没有问题:

  • 问题内容: 我正在使用JavaScript进行搜索。我会使用一种表格,但是它弄乱了我页面上的其他内容。我有此输入文本字段: 这是我的JavaScript代码: 如何从文本字段获取值到JavaScript? 问题答案: 有多种方法可直接获取输入文本框值(无需将输入元素包装在表单元素内): 方法1: 得到所需盒子的价值 例如, 注意: 方法2、3、4和6返回元素的集合,因此请使用[whole_numb

  • 我正在用JavaScript进行搜索。我会使用一个表单,但它会把我页面上的其他东西弄乱。我有这个输入文本字段: 这是我的JavaScript代码: 如何将文本字段中的值获取到JavaScript中?

  • 问题内容: 我正在尝试使用Excel中电子表格中的数据,但始终会出现此错误,已经尝试将工作表格式化为文本和数字格式,但该错误仍然存​​在。 我看到一个使用它的人解决了,但是我不知道我在代码中适合该段落的地方。 问题答案: 在这种情况下,格式化程序可以正常工作。

  • 嘿,我有这行代码 我所做的是,当我按下一个按钮时,这个输入的值会改变,会加上1,比如1,然后2,等等。 但我想知道的是我如何得到这个输入的最后一个值,例如,如果我按下五次按钮,我如何在javascript或使用jquery中得到数字5。 我在找一些信息,但什么也找不到。 谢谢。