首页 > 解决方案 > 如何序列化 DataTables.net 中的单行?

问题描述

我有一个带有输入字段的 DataTables.net 表。

    <table id="example" class="table table-striped table-bordered" style="width:100%">
      <thead>
          <tr class="text-center">
            <th scope="col">Name</th>
            <th scope="col">Level</th>
            <th scope="col">Save</th>
          </tr>
      </thead>
      <tbody>
        {% for member in form.users %}
          <tr>
              <td>{{ member.username(class="form-control form-control-lg") }}</td>
              <td>{{ member.user_level(class="form-control form-control-lg") }}</td>
              <td><button type="button" user_id="{{member.id}}" class="btn btn-primary btn-save-user">Save</button></td>
          </tr>
        {% endfor %}
      </tbody>
    </table> 

所以我编辑值,现在想通过按行Save按钮来保存行:

$(document).on('click', '.btn-save-user', function (e) {
        var row = dataTable.row( dataTable.row( $(this).parents('tr') ).index( ));
        console.log(row.node().$('input, select').serialize());
      });

但是得到一个错误:

row.node(...).$ is not a function

如果我做:

console.log(row.nodes().$('input, select').serialize());

我得到所有行的值。

如何从单行的输入中获取值?

标签: javascript

解决方案


尝试.find()在由返回的 jQuery 对象上使用.to$()(这与这样的相同.tojQuery().nodes().to$().find('input, select')它为您提供了参考https://datatables.net/reference/api/to%24()


推荐阅读