При клике на кнопку не могу получить текст с инпута в "count"
Вы не из того места пытаетесь получить значение.
Значение тут: `$(this).parents('tr').find('.number-text').val() `
А у вас: `table.row(значение)` - скобка не на месте.
// вместо $('#users_table tbody').on('click' ...
table.on("click", "button", function (e) {
let data = table.row(e.target.closest("tr")).data();
console.log(data);
let cart_count = $(e.target.closest("tr")).find("input.number-text").val();
console.log(cart_count);
});
Но лучше работать с api datatables. Примерно так:
var table = null;
$(document).ready(function () {
table = $("#users_table").DataTable({
data: [[29, "Andrew", "Ruby", "9300000", "1", "btn"]],
columns: [
{ title: "id" },
{ title: "name" },
{ title: "code" },
{ title: "description" },
// вместо createdRow использовать renderer и изменять table.data сразу при изменении значения поля
{ title: "count", render: function (data, type, row, meta) {
return "<input type=\"text\" value="+row[4]+" onchange=\" table.cell("+meta["row"]+", 4).data(this.value)\">";
}},
{ title: "action" }
],
columnDefs: [
{
data: null,
defaultContent: "<button>Click!</button>",
targets: -1
}
],
});
table.on("click", "button", function (e) {
// тогда нужное вам значение уже есть тут
let data = table.row(e.target.closest("tr")).data();
console.log(data);
});
});