#javascript #jquery #datatable
#javascript #jquery #datatable
Вопрос:
у меня проблема в моем скрипте, идентификаторы и количество имеют значение, в то время как мой Identitytype равен null. я использую функцию onclick для получения всех выбранных значений на основе определенного столбца в datatable.
$(function () {
$('#PayableList').DataTable({
"columnDefs": [{ type: 'date', 'targets': [6] }],
"aaSorting": [[6, "desc"]],
"ajax": "@Url.Action("getpayablelist", "payable")",
"columns": [
{
"render": function (data, type, full, meta) {
return "<input type='checkbox' class='checkbox' onclick='add(" full.Id ", " full.Amount ", " full.IdentityType ", this.checked)'>"
}
},
{ "data": "Name" },
{ "data": "ReferenceNo" },
{ "data": "IdentityType" },
{ "data": "Amount" },
{ "data": "CustomerPayable" },
{ "data": "CreatedDate" }
]
});
});
var ids = [];
var amounts = [];
var identities = [];
function add(id, amount, IdentityType, isChecked) {
if (isChecked) {
ids.push(id);
amounts.push(amount);
identities.push(IdentityType);
}
else {
var i = ids.indexOf(id);
ids.splice(i, 1);
}
}
Комментарии:
1. Можете ли вы включить образцы данных, к которым вы привязываете таблицу данных?
2. @DipenShah пример данных приведен по ссылке выше.
Ответ №1:
Я не вижу фактического типа данных в изображении, но я предполагаю IdentityType
, что это строка и, следовательно, вызывает проблему. Обновить метод визуализации до:
"render": function (data, type, full, meta) {
return "<input type='checkbox' class='checkbox' onclick='add(" full.Id ", " full.Amount ", "" full.IdentityType "", this.checked)'>"
}
и это должно сработать. Вы не экранируете строку в методе, из-за чего возникает проблема.
Проверьте этот действительно плохой практический код, чтобы увидеть влияние на ваш текущий код после изменения:
let full = {
Amount: 100.25,
Id: 1,
IdentityType: "SOMERANDOMTEXT"
};
document.body.innerHTML = "<input type='checkbox' class='checkbox' onclick='add(" full.Id ", " full.Amount ", "" full.IdentityType "", this.checked)' />";
function add(id, amount, identityType) {
console.log(`${id}, ${amount}, ${identityType}`);
}